chaoshu的个人博客分享 http://blog.sciencenet.cn/u/chaoshu

博文

[转载]VS2010调试RTKLIB2.4.2

已有 9223 次阅读 2016-7-15 13:01 |个人分类:RTKLIB|系统分类:科研笔记|文章来源:转载

本文参考两篇文章,在此衷心感谢。

《RTKLIB 2.4.2调试方法》刘帅 2013-05-09

《VS2013使用RTKLIB中需要注意的一些问题(编译)》

开始之前,先解决一个库的问题——pthread.h

参考:

http://blog.csdn.net/zhangyulin54321/article/details/8166299

http://blog.sciencenet.cn/blog-858128-818441.html


a、将libx64下的所有文件(pthreadVC2.lib和libpthreadGC2.a)复制到VS2010安装目录下D:Program FilesMicrosoft Visual Studio 10.0VCLib

b、将includepthread.h复制到D:Program FilesMicrosoft Visual Studio 10.0VCinclude下

c、将dllx64的所有文件(pthreadGC2.dll和pthreadVC2.dll)复制到D:Program FilesMicrosoft Visual Studio 10.0VCBin

1、新建一个空的工程

2、添加文件

a)在工程目录下新建文件夹src,拷贝RTKLIB2.4.2下的src下面的所有文件和rcv文件夹到src下面,同时将appstr2str下面的str2str.c拷贝到src下面,作为主程序入口。

b)分别添加头文件和源文件到工程中


注意,不要添加rcvlex.c,因为其中有一个函数编译总是出问题

/* sync code -----------------------------------------------------------------*/

static int sync_lexr(unsigned char *buff, unsigned char data)

{

   buff[0]=buff[1]; buff[1]=data;

   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 directoryd

sys/time.h,这是linux下面的gcc里面的库函数,不能在VS中使用;RTKLIB中有大量的这样的库,所以我们要设置预处理WIN32

配置属性 > C/C++预处理器 > 预处理定义:WIN32、_CRT_SECURE_NO_DEPRECATE


3)问题三

错误10error C2065: “MINPRNQZS_S”: 未声明的标识符

在rtklib.h中找到上面变量,修改如下:


4)问题四

错误1error C2065: “SIGPIPE”: 未声明的标识符


5)问题五

错误1error C2466: 不能分配常量大小为 0 的数组

解决:在预编译器里面加入 ENAGLO

6)问题六

错误31error LNK2019:无法解析的外部符号 __imp__accept@12,该符号在函数 _accept_nb 中被引用

.......

解决:添加附加库[连接器->输入->附加依赖库]添加winmm.lib, ws2_32.lib


7)问题七

错误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 ") 加入这句话应该可以了



https://blog.sciencenet.cn/blog-858128-990823.html

上一篇:STRSVR——RTCM差分数据传输NTRIP
下一篇:GMT绘制GPS速度场
收藏 IP: 219.140.192.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 08:27

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部