别人家的猫能当猫手机支架架,我家的猫可以吗

VS2013使用rtklib中需要注意的一些问题(编译) - 推酷
VS2013使用rtklib中需要注意的一些问题(编译)
最近因为项目需要需要对rtcm数据进行解码,rtklib提供了很多底层的函数,准备直接输出标准DLL的方式供C#调用。下面把项目中引用rtklib源码需要注意的地方记录下。
1. 首先在vs2013中新建一个win32的dll项目
2. 在项目上添加一个文件夹[rtklibsrc]然后在文件夹上【添加现有项目】把rtklib的源文件加入工程。在rtklibsrc下建立rcv把rcv下面的文件也添加到工程
3. 现在开始编译工程,你会发现很多错误。下面我们一步步来解决错误。
1&& Q: error C1853: “Debug\rtklibHelper.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)&&& x:\xxxx\rtklibhelper\rtklibsrc\tle.c&&& 1&&& 1&&& rtklibHelper
A: 不使用预编译头
2& Q: 错误&&& 1&&& error C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.&&& x:\xxxx\rtklibhelper\rtklibhelper\rtklibsrc\tle.c
A: 其实提示上面已经告诉你方法了,需要你加入预编译指令来取消这个错误[_CRT_SECURE_NO_WARNINGS]
3& Q:& error C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings&&& x:\xxxx\rtklibhelper\rtklibsrc\stream.c
A: 这个错误和上面类似,加入[_WINSOCK_DEPRECATED_NO_WARNINGS ]
4& Q:接下来是一个这样的错误& error C2466: 不能分配常量大小为 0 的数组&&& x:\xxxx\rtklibhelper\rtklibsrc\rinex.c
A:这个错误我们来看一下, 在[MAXPRNGLO]上面按F12,看他的定义处
这个常量为0,那么不能进行编译,我们想上面一样在预编译器里面加入 ENAGLO
5& Q:& error C1083: 无法打开包括文件: “rtklib.h”: No such file or directory&&& x:\xxxx\rtklibhelper\rtklibsrc\rcv\ublox.c&&& 41&&& 1&&& rtklibHelper
A:& 添加附加目录设置[.\rtklibsrc]
, 注意是C/C++的常规下面,不是链接器的常规页面。
6& Q:& error LNK2005: _input_oem3 已经在 novatel.obj 中定义&&& x:\xxxx\rtklibhelper\novatel_old.obj&&& rtklibHelper
A: 这个错误是添加文件的时候添加重复了novatel_old.c不应该添加了,删除即可
7&:& Q:& error LNK2019: 无法解析的外部符号 _settspan,该符号在函数 _postpos 中被引用&&& x:\xxxx\rtklibhelper\postpos.obj&&& rtklibHelper
error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数 _tickget 中被引用&& x:\xxxx\rtklibhelper\rtkcmn.obj&&& rtklibHelper
error LNK2019: 无法解析的外部符号 __imp__accept@12,该符号在函数 _accept_nb 中被引用&&& x:\xxxx\rtklibhelper\stream.obj&&& rtklibHelper
A: 添加附加库[连接器-&输入-&附加依赖库]添加winmm.lib, ws2_32.lib
8&:Q: error LNK2019: 无法解析的外部符号 _showmsg,该符号在函数 _convrnx 中被引用&&& x:\xxxx\rtklibhelper\convrnx.obj&&& rtklibHelper
A: 一查showmsg这个函数如果在DLL中需要自己定义,rtklib里面已经做好了处理需要在预处理器里面加入[DLL]即可。
预处理器里面我们添加了
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
最后rtklibHelper编译成功了,可以开始编写具体的功能函数了。
=========================================================================================
diocp|mybean官方网站: 主域名: www.diocp.org
diocp|mybean官方论坛:
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致[转载]VS2010调试RTKLIB2.4.2
已有 2302 次阅读
|个人分类:|系统分类:|文章来源:转载
本文参考两篇文章,在此衷心感谢。《RTKLIB 2.4.2调试方法》刘帅 《VS2013使用RTKLIB中需要注意的一些问题(编译)》开始之前,先解决一个库的问题——a、将\lib\x64下的所有文件(pthreadVC2.lib和libpthreadGC2.a)复制到VS2010安装目录下D:\Program Files\Microsoft Visual Studio 10.0\VC\Libb、将\include\pthread.h复制到D:\Program Files\Microsoft Visual Studio 10.0\VC\include下c、将\dll\x64的所有文件(pthreadGC2.dll和pthreadVC2.dll)复制到D:\Program Files\Microsoft Visual Studio 10.0\VC\Bin1、新建一个空的工程2、添加文件a)在工程目录下新建文件夹src,拷贝RTKLIB2.4.2下的src下面的所有文件和rcv文件夹到src下面,同时将\app\str2str下面的str2str.c拷贝到src下面,作为主程序入口。b)分别添加头文件和源文件到工程中注意,不要添加rcvlex.c,因为其中有一个函数编译总是出问题/* sync code -----------------------------------------------------------------*/static int sync_lexr(unsigned char *buff, unsigned char data){ & &buff[0]=buff[1]; buff[1]= & &return buff[0]==LEXRSYNC1&&buff[1]==LEXRSYNC2;}还没有解决,暂时先不管,不添加此文件。设置项目属性选择:项目 & 属性。设置一:配置属性 &链接器 & 调试 &生成调试信息:是设置二:配置属性 & C/C++ & 常规 & 调试信息格式:C7编译一下,发现堆问题,下面一一解决:1)错误一错误13error C1083: 无法打开包括文件:“dirent.h”: No such file or directoryd错误77error C1083: 无法打开包括文件:“rtklib.h”: No such file or directoryd解决:添加附加目录设置2)问题二错误15error C1083: 无法打开包括文件:“sys/time.h”: No such file or directorydsys/time.h,这是linux下面的gcc里面的库函数,不能在VS中使用;RTKLIB中有大量的这样的库,所以我们要设置预处理WIN32配置属性 & C/C++预处理器 & 预处理定义:WIN32、_CRT_SECURE_NO_DEPRECATE3)问题三错误10error C2065: “MINPRNQZS_S”: 未声明的标识符在rtklib.h中找到上面变量,修改如下:4)问题四错误1error C2065: “SIGPIPE”: 未声明的标识符5)问题五错误1error C2466: 不能分配常量大小为 0 的数组解决:在预编译器里面加入 ENAGLO6)问题六错误31error LNK2019:无法解析的外部符号 __imp__accept@12,该符号在函数 _accept_nb 中被引用.......解决:添加附加库[连接器-&输入-&附加依赖库]添加winmm.lib, ws2_32.lib7)问题七错误13error LNK2019: 无法解析的外部符号 _showmsg,该符号在函数 _convrnx 中被引用解决: 一查showmsg这个函数如果在DLL中需要自己定义,rtklib里面已经做好了处理需要在预处理器里面加入[DLL]即可完成以上,就可以开始rtklib在vs之旅了!亲测,没有任何问题......如果出现如下错误:无法将参数 1 从“char [1024]”转换为“LPCWSTR”选择&项目-&属性-&配置属性-&常规-&字符集-&未设置&,将UNICODE关闭就可以了···无法解析的外部符号 __imp__timeGetTime@0没有加入相应的链接库,winmm.lib. #pragma comment(lib, &winmm.lib &) 加入这句话应该可以了
转载本文请联系原作者获取授权,同时请注明本文来自陈超科学网博客。链接地址:
上一篇:下一篇:
当前推荐数:0
评论 ( 个评论)
扫一扫,分享此博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &开源的GNSS导航定位包RTKLib的学习历程(;RTKLIB简介:;由日本东京海洋大学开发(TokyoUnivers;),笔者查到最早的介绍是一篇日文的,《RTK-G;支持标准的GPS、GLONASS、QZSS和SB;支持多种动态、静态卫星定位方式(单点定位、DGP;支持全球定位导航系统的多种标准格式和协议;支持多品牌接收机的专有消息传输协议;支持多种通讯
开源的GNSS导航定位包RTKLib的学习历程(一)
RTKLIB简介:
由日本东京海洋大学开发(Tokyo University of Marine Science and Technology
),笔者查到最早的介绍是一篇日文的,《RTK-GPS用プログラムライブラリRTKLIBの_k?u瑜用》,其介绍的为RTKLIB
ver.1.1。另有一篇论文《Development of the lowcost RTK GPS receiver with an open source program package
RTKLIB》也可以看下。 其主要功能如下:
支持标准的GPS、GLONASS、QZSS和SBAS的为精确定位算法(目前此版本不支持Galileo系统)
支持多种动态、静态卫星定位方式(单点定位、DGPS、载波相位动态差分定位RTK、静态、移动基站、PPP)
支持全球定位导航系统的多种标准格式和协议
支持多品牌接收机的专有消息传输协议
支持多种通讯方式
====================华丽的分割线====================
下面开始介绍笔者的学习历程,由于工作的原因,时间跨度有些大,断断续续的。
初次接触RTKLib是在2010年8月份,当时版本还是2.3.0,下载了源码,花时间做了一个简单的应用:通过调用RTKLIB的API接口,进行单点定位,并计算出速度、方位角、仰角等,主要调用的函数依顺序为:
init_raw, input_raw,pntpos,ecef2pos,pntvel,ecef2enu,free_raw 。
由于作者用Borland C++开发,笔者用的是VC++,所以移植时还有一些函数需要自己实现,如:
int showmsg(char *format, ...)等。
注: pntvel在2.4.0发布时,已去掉。
应用时调用的主要函数接口如下: // initialize receiver raw data control struct and reallocate obsevation and
// epheris buffer
receiver raw data control struct
// return : status (1:ok,0:memory allocation error) */
extern int init_raw(raw_t *raw);
// free receiver raw data control ----------------------------------------------
// free observation and ephemeris buffer in receiver raw data control struct
receiver raw data control struct
// return : none
//-----------------------------------------------------------------------------*/
extern void free_raw(raw_t *raw);
// input receiver raw data from stream -----------------------------------------
fetch next receiver raw data and input a message from stream
receiver raw data control struct
receiver raw data format (STRFMT_???)
unsigned char data I stream data (1 byte)
return : status (-1: error message, 0: no message, 1: input observation data,
2: input ephemeris, 3: input sbas message,
9: input ion/utc parameter)
// -----------------------------------------------------------------------------
extern int input_raw(raw_t *raw, int format, unsigned char data);
/// single-point positioning ----------------------------------------------------
compute receiver position, velocity, clock bias by single-point positioning
with pseudorange and doppler observables
: obsd_t *obs
observation data
number of observation data
navigation data
prcopt_t *opt
processing options
double *azel
azimuth/elevation angle (rad) (NULL: no output)
ssat_t *ssat
satellite status
(NULL: no output)
error message for error exit
return : status(1:ok,0:error)
// -----------------------------------------------------------------------------*/
extern int pntpos(const obsd_t *obs, int n, const nav_t *nav,
const prcopt_t *opt, sol_t *sol, double *azel, ssat_t *ssat,
char *msg);
// velocity estimation by single-point positioning -----------------------------
// compute receiver position/velocity and clock-bias/drift
: obsd_t *obs
observation data records
number of observation data records
navigation messages
double *rr
receiver position (ecef) (m)
double *azel
satellite azimuth/elevation angle (rad)
valid satellite flag
double *vr
estimated velocity (ecef) (m/s) (3 x 1)
double *Qv
estimated velocity covarience (3 x 3)
double *ddtr
estimated receiver clock-drift (s/s)
return : number of valid satellites (&0:error)
-1: number of valid dopplers, -2: least square error
-3: iteration divergent, -5: validation error,
-6: gdop error
// -----------------------------------------------------------------------------*/
extern int pntvel(const obsd_t *obs, int n, const nav_t *nav, const double *rr,
const double *azel, const int *vsat, double *vr, double *Qv,
double *ddtr);
// transform ecef to geodetic postion ------------------------------------------
transform ecef position to geodetic position
: double *r
ecef position {x,y,z} (m)
double *pos
geodetic position {lat,lon,h} (rad,m)
return : none
: WGS84, ellipsoidal height
// -----------------------------------------------------------------------------*/
extern void ecef2pos(const double *r, double *pos);
transform ecef vector to local tangental coordinate -------------------------
transform ecef vector to local tangental coordinate
: double *pos
geodetic position {lat,lon} (rad)
vector in ecef coordinate {x,y,z}
vector in local tangental coordinate {e,n,u}
return : none
// -----------------------------------------------------------------------------*/
extern void ecef2enu(const double *pos, const double *r, double *e);
RTKlib学习(二):Glonass参数,该信哪一个?
在了解Glonass卫星位置计算时,一般用四阶龙格-库塔算法,笔者在校时学的《数值计算方法》中有讲,不过也差不多忘完了,重新学习吧。算法本身倒不是多难,难得是碰到了参数该用哪一个呢?
上图为笔者查找相关论文,搜索出来的,上(左)来自《测绘与空间地理信息》第32卷第2期;上图(右)来自《东南大学学报》第40卷,前者是2009年4月份的,后者是2010年7月份的。两篇文章公式还算一致,但与笔者看的《glonass ICD 2002r》对不上,如下图:(注:第二与第三公式中参数不一致,Why?
三亿文库包含各类专业文献、各类资格考试、高等教育、生活休闲娱乐、文学作品欣赏、中学教育、rtklib学习心得81等内容。 &>&&>&&>&&>&RTKLIB开源项目(2.4.3)
RTKLIB开源项目(2.4.3)
上传大小:59.74MB
RTKLIB是日本东京海洋大学开发(Tokyo University of Marine Science and Technology)开发的一个开放源程序包,供标准与精确GNSS全球导航卫星系统应用。RTKLIB包括一个可移植的程序库和几个应用程序(AP)库。
RTKLIB的特点:
(1)支持标准的和精确的定位算法:
GPS,GLONASS,QZSS准天顶卫星系统,北斗和SBAS
(2)支持多种定位模式与GNSS实时和后处理:
单点,DGPS / DGNSS,动态的,静态的,移动基线,定点,PPP运动,PPP静态和PPP定点
(3)支持多种标准格式和协议GNSS:
RINEX 2.10,2.11,2.12 OBS /NAV/ GNAV / HNAV,RINEX 3.00 OBS / NAV,RINEX 3.00CLK,RTCM V.2.3,V.3.1 RTCM 1.0,NTRIP,RTCA/DO-229C,NMEA 0183,SP3-C,IONEX 1.0,ANTEX 1.3,NGS PCV和EMS 2.0.
NVS Technologies AG公司NV08C系列GNSS模块经测定支持RTKlib应用。...展开收缩
综合评分:5(1位用户评分)
所需积分:1
下载次数:50
审核通过送C币
创建者:meirux11
创建者:nigelyq
创建者:aexisun
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&vip年卡&4000万程序员的必选
RTKLIB开源项目(2.4.3)
会员到期时间:剩余下载次数:
积分不足!
资源所需积分
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分
当前拥有积分
VIP年卡全年1200次免积分下载
你当前的下载分为234。
RTKLIB开源项目(2.4.3)
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
quentinchqc
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:

我要回帖

更多关于 天猫魔盒支架 的文章

 

随机推荐