一、编译源码:
首先按照链接,配置rtklib库源码于VS中:
二、编译遇到问题:
1、错误 C1083 无法打开包括文件: “rtklib.h”: No such file or directory test_RTCM
解决办法:由于,与接收机相关的代码位于rcv文件夹内,源代码中,无法找到“rtklib.h”头文件,因此,需要与接收机相关的源代码(即rcv内的每一个.c文件)都需要找到“rtklib.h”头文件
以binex.c为例:右键binex.c源码,点击“属性”;如下:
添加相对路径:
添加绝对路径:
2、rtkcmn.c源代码中ifndef WIN32 在 #include "rtklib.h"前面,如果,在如下图示中:”预处理器定义“,则不会报错;
如果是在,头文件“rtklib.h”中,进行定义,怎会报错!
3、C4703 使用了可能未初始化的本地指针变量“sbs”
解决办法:关闭“安全开发生命周期(SDL)检查”
4、错误 LNK2019 无法解析的外部符号 __imp__socket@12,该符号在函数 _gentcp 中被引用
在rtklib.h头文件中,添加:
#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"Ws2_32.lib")
#pragma 是一条编译器指令,是给告诉编译器你要链接一些东西,然后在后面的comment里面指明是什么东西;导入winmm.lib库,告诉编译器你要用到得winmm.lib库。
注:
rtklib.h头文件中,第一步就添加:
#define ENAGLO
#define ENAGAL
#define ENACMP
#define ENAQZS
#define ENAIRN
三、实现读取RTCM数据
将保存的RTCM二进制数据,导入程序中,既可以进行调试分析!
(存在任何问题,私信联系,沟通)
参考链接;
3、error C4703: 使用了可能未初始化的本地指针变量“xxx”