在VS2019配置RTKLIB 2.4.3

配置RTKLIB 2.4.3 b34 版本

今天开始学习RTKLIB,打算看看源码,网上找了一些博客,照着操作还是有点问题,综合一下倒是可以基本解决遇到的问题,现在给出我的配置过程,此过程我照着重新做过,应该不会有什么问题,有问题也可以问我。
平台:VS2019
这是参考的博客:
1、
http://t.csdn.cn/Fi6vV
2、
http://t.csdn.cn/UnacB

下载程序源码

链接:https://pan.baidu.com/s/1lk0G80c5XVKuc7s___LsPA?pwd=1234
提取码:1234

准备工作

1、新建一个文件夹,任意命名,比如:RTKlib
2、打开VS2019,创建一个空项目,命名为rtklib,将空项目地址选择RTKlib。
3、复制源码中的src文件夹到空项目rtklib的文件里
Alt
Alt

加载源码

1、在头文件和源文件处右键,单击现有项,添加src中的头文件和源文件
2、在源文件处右键,单击新建筛选器,命名为rcv,然后选中该文件,向里面添加现有项(src中rcv里的源文件)
Alt

创建主函数

添加一个后缀为main.c的源文件
并添加如下代码

#include"src/rtklib.h"

void main()
{
	gtime_t ts = { 0 }, te = { 0 };
	prcopt_t opt = prcopt_default;
	solopt_t sopt = solopt_default;
	filopt_t fopt = { 0 };
	char* infile[] = { {"E:\\Programme\\Positioning\\RTKlib\\rtklib\\2022\\07590920.05o"},
					 {"E:\\Programme\\Positioning\\RTKlib\\rtklib\\2022\\30400920.05o"},
					 {"E:\\Programme\\Positioning\\RTKlib\\rtklib\\2022\\07590920.05n"} };
	char* ofile = "E:\\Programme\\Positioning\\RTKlib\\rtklib\\mypos.pos";

	opt.navsys = SYS_GPS;
	opt.mode = PMODE_MOVEB;
	sopt.posf = SOLF_ENU;
	postpos(ts, te, 0.0, 0.0, &opt, &sopt, &fopt, infile, 3, ofile, "", "");
}

PS:此部分可参考2链接所给方法创建主函数
我们还需要添加一个参数输入的主函数作为程序入口,其在源码包中路径为\RTKLIB-rtklib_2.4.3\app\consapp\rnx2rtkp\ rnx2rtkp.c,可将其复制到src路径中,并改名为main.c后导入
如果进行此步骤,就无需做 “修改部分代码”那块的第三点

修改配置属性

1、点击项目>>属性>>配置属性>> C/C++ >>预处理器,在预处理器定义处添加:
WIN32
_DEBUG
_CONSOLE
_LIB
_CRT_SECURE_NO_WARNINGS
ENAGAL
ENACMP
ENAIRN
ENAGLO
ENAQZS
TRACE
2、并在配置属性>> VC++ 目录>>包含目录,单击编辑,添加你对应的src文件的路径,如下:
E:\Programme\Positioning\RTKlib\rtklib\src
在这里插入图片描述
3、并在项目>>rtklib属性>>配置属性 >>链接器>>输入,附加依赖项处,单击编辑,添加:
winmm.lib
ws2_32.lib
在这里插入图片描述
4、项目>>rtklib属性>>配置属性>>C/C++>>常规,在SDL检查处选择否,单击应用
在这里插入图片描述

修改部分代码

1、在rtklib.h文件中添加,此部分与前一部分修改可选做一项(注释掉的是和上一部分1和3重合的)

//#define ENAGAL
//#define ENACMP
//#define ENAIRN
//#define ENALEO
//#define ENAGLO
//#define ENAQZS
#pragma warning(disable:4996)
#pragma warning(disable:4101)
#pragma warning(disable:4244)
//#pragma comment(lib,"winmm.lib")
//#pragma comment(lib,"Ws2_32.lib")

在这里插入图片描述
2、在rtkcmn.c文件中,做如下图操作
在这里插入图片描述
3、同时在rtkcmn.c中,最后部分,注释掉#ifdef WIN_DLL和#endif,否则会出现下图的错误

//#ifdef WIN_DLL
extern int showmsg(char *format,...) {return 0;}
extern void settspan(gtime_t ts, gtime_t te) {}
extern void settime(gtime_t time) {}
//#endif

在这里插入图片描述

结尾

生成解决方案,没有错误,到此结束。
如果出现其他的问题,可参考本文开头的两位博主的博客

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
引用:#pragma warning(disable:4996) #pragma warning(disable:4101) #pragma warning(disable:4244) #pragma comment(lib,"winmm.lib") #pragma comment(lib,"Ws2_32.lib")。引用:void main() { gtime_t ts = { 0 }, te = { 0 }; prcopt_t opt = prcopt_default; solopt_t sopt = solopt_default; filopt_t fopt = { 0 }; char* infile[] = { {"D:\\rtklibStudy\\testdata\\07590920.05o"}, {"D:\\rtklibStudy\\testdata\\30400920.05o"}, {"D:\\rtklibStudy\\testdata\\07590920.05n"} }; char* ofile = "D:\\my_rtklib\\mypos.pos";。引用:调试->my_rtklib调试属性->配置属性->C/C ->SDL检查,选择否。 。 根据引用和引用的内容,rtklib2.4.3是一个软件库,它提供了全球导航卫星系统(GNSS)数据处理的功能。通过引用中的示例代码可以看出,rtklib2.4.3可以用于处理GNSS测量数据,包括读取输入文件、设置选项、计算解算结果,并将结果输出到指定文件。 在使用rtklib2.4.3时,可以根据需要进行编译和调试。根据引用的内容,可以通过#pragma warning指令禁用特定的编译警告。根据引用的内容,可以在调试属性设置中选择是否进行SDL检查。 总结起来,rtklib2.4.3是一个用于处理GNSS数据的软件库,可以进行数据读取、选项设置、解算计算等操作,并可以通过编译和调试进行定制和优化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [用VS2019进行RTKLIB2.4.3调试的两种方法](https://blog.csdn.net/qq_44296563/article/details/124537633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值