SPURSGO的个人博客分享 http://blog.sciencenet.cn/u/SPURSGO

博文

基于VS的RTKLIB编译学习过程及经验分享(一)

已有 3941 次阅读 2018-9-30 16:40 |个人分类:RTKLIB|系统分类:科研笔记

 

基于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://blog.sciencenet.cn/blog-3386358-1138017.html

上一篇:GNSS与大地测量领域在线资源获取地址
下一篇:基于VS的RTKLIB编译学习过程及经验分享(二)
收藏 IP: 222.28.155.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-23 17:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部