一
基于VS2008利用rtklib开源代码处理GPS以及北斗数据详解
1、在vs中新建一个控制台项目(含预编译头);
2、在建好的项目中添加rtklib.h以及需要用到的source文件(.c文件),然后将.c改为.cpp并在每个文件首句增加一行#include "stdafx.h",当然在stdafx.h文件中添加#include "rtklib.h"; 这样编译基本可以通过了;
3、一般而言,我们不会需要用到rtklib程序集中的所有文件,只是需要部分。比如我需要用到其中的pntpos这个标准单点定位函数,这个时候就需要添加该函数所在实现文件(pntpos.c)。于是添加了这个文件。但是一般而言,只添加这一个可能不能解决问题,因为rtklib的各个文件之间并不是完全独立,pntpos文件中某些函数可能会调用到其他文件中实现的函数。于是需要再把相关文件添加到工程中。对于这个问题,可以根据自己添加的文件,编译时候的提示,依次添加进来相应文件。这样可以解决fatal error的问题;
4、在添加完成后,可能会遇到一些其他问题。主要问题有:
a.关于某些地方数组越界或为空(主要是glonass),这个时候,查看rtklib.h头文件,可以发现关于系统启用的#define语句,其中除GPS系统外,其他系统数目都是0,解决的办法主要是注释掉这个判断语句。注释掉rtklib.h文件的自第146行后开始的关于启用其他卫星导航系统的语句,如GLONASS:
//#else
//#define MINPRNGLO 0
//#define MAXPRNGLO 0
//#define NSATGLO 0
//#define NSYSGLO 0
//#endif
b.关于很多地方会出现const char*与char*的不能转化问题,这个很简单,在相应地方进行强制转化就行。
c.还存在字符集采用的问题,这个只需要在项目属性中使用多字节字符集即可(见下图)。
d.关于某些函数存在未实现的问题,这个时候,可以网上直接搜索那些没有实现的函数,进行替换,或是直接屏蔽掉。
rtklib中代码的添加工作基本就这些问题,解决后应该就可以使用了
相关文章地址:https://www.cnblogs.com/DKSoft/p/4677381.html
这篇介绍了VS2008平台下创建一个C++控制台程序,编译rtklib源码的过程,创建时含预编译头,另外麻烦的将.c文件都改为.cpp文件,还取巧通过注释程序的方法避免一些问题,总的来说没有针对性解决问题,借鉴意义不大。
转载本文请联系原作者获取授权,同时请注明本文来自尚正辉科学网博客。
链接地址:https://wap.sciencenet.cn/blog-3386358-1138017.html?mobile=1
收藏