一、前言
在RTKLIB中,有些版本rtklib提供了自带的VS文件,不用移植就可以直接编译,这里使用了rtklib2.4.3作为模块使用。
二、修改调试
首先打找到msc.sln并打开,路径为…\rtklib_2.4.3\RTKLIBmaster_2.4.3\RTKLIB\app\rnx2rtkp\msc
然后进行单向升级(VS自动提示,确定即可),然后打开rnx2rtkp会出现很多其他错误,下面将我碰到的问题进行解答。
常见的问题
1.因为原文是基于win 8.1SDK如果找不到WIN8.1 SDK的的话可以在 VS installer添加配置:
2.找不到可执行文件,
这是因为生成的可执行文件和工程名不一致
打开项目属性可以看到,这里输出文件和目标文件名不一致,我么可以把输出文件改为项目名或者将目标文件名改为输出文件的名字。
3.rtklib.h头文件未能引入。
解决方法:
在rnx2rtkp.c中的include "rtklib.h"改为 #include “…/…/src/rtklib.h”。此处用到了相对路径表示方法。注意rtklib2.4.3/src文件夹中的.c和.h文件不要删改,也不要移动。
4.如果出现无法加载符号
打开调试->选项,勾选启动源服务支持和Microsoft符号服务器
5.然后生成解决方案,进行编译后出现错误(error LNK1120: 1 个无法解析的外部命令 和error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数 _tickget 中被引用),查阅博客https://www.cnblogs.com/DKSoft/p/4677381.html,发现是缺少依赖库winmm.lib。解决方法是,【菜单】项目->属性-> 配置属性 添加附加库[链接器->输入->附加依赖库] 添加winmm.lib;。
三、运行实现
这里首先在rtkpost运行成功,然后再进行VS的调试,我主要采用B站RTK的视频数据进行RTK定位,
将文件路径直接写到了文件中进行调试(注意路径要用双\)
可以看到 运行成功
如果想用自己的配置的话可以用rtkpost导出conf文件,然后在属性的命令参数中中添加(路径不宜过长)
更多的运行方法可以参考参考链接。
参考链接
大部分都是参考博客:https://blog.csdn.net/weixin_44126610/article/details/105009973
https://www.bilibili.com/video/BV1m5411Y7xV