方法一:
1.准备rtklib源码。从网上下载并解压rtklib软件包。
2.使用VS2019新建一个项目。
3.将源码添加到项目里。
将rtklib\src目录下所有源码拷贝到工程目录下,同时,讲rcv目录下的所有.c文件拷到src目录下。
在VS2010中添加src目录下的所有源文件。
右键->添加->现有项,将src文件中除rcv文件全部添加进去。
4.添加新建项,创建主函数文件。
右键->源文件->添加->新建项->C++源文件->main.c
注意添加.c后缀源文件,VS2010默认以文件后缀名来识别,.cpp会以C++的方式来编译。
编写的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[] = { {"D:\\rtklibStudy\\testdata\\07590920.05o"},
{"D:\\rtklibStudy\\testdata\\30400920.05o"},
{"D:\\rtklibStudy\\testdata\\07590920.05n"} };
char* ofile = "D:\\my_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, "", "");
}
5.修改部分代码
rtklib.h开头添加定义
#define WIN32
#define ENAGLO
#define ENAGAL
#define ENACMP
#define ENAQZS
#define ENAIRN
#define ENALEO
#pragma warning(disable:4996)
#pragma warning(disable:4101)
#pragma warning(disable:4244)
#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"Ws2_32.lib")
rtkcmn.c修改
将#include "rtklib.h"拖到前面
当出现下面错误时
注释掉#ifdef WIN_DLL与endif
6.关闭SDL检查
调试->my_rtklib调试属性->配置属性->C/C++->SDL检查,选择否。
7.F7生成解决方案,根据需求更改代码。
如果出现下面错误,若没出现,则可不管。
打开ephemeris.c,并将*sbs设为空
8.如果出现错误(Run-Time Check Failure #3):依次打开项目-〉属性-〉配置属性-〉C/C++代码生成-〉基本运行时检查-〉设置为默认即可。
9.运行成功,并有一个mypos.pos文件。