admin 管理员组文章数量: 1086019
2024年4月25日发(作者:楞严咒全文读诵11分钟)
编译 RTKLIB 2.4.2
Hanford
2018年06月06日
变更记录
变更记录
日期 作者
2018.06.06 Hanford
完成初稿
说 明
目 录
目 录
第1章 C++.1
1.1 下载、安装 Embarcadero .1
1.2 打开工程..........................................................................................................1
1.3 编译..................................................................................................................2
1.4 将*.exe复制到bin目录.....................................................................................3
第2章 VC++.............................................................................................................4
2.1 编译核心代码..................................................................................................4
2.1.1 添加核心代码文件.....................................................................................4
2.1.2 禁用预编译头文件.....................................................................................4
2.1.3 使用MBCS字符集......................................................................................5
2.1.4 修改5
2.1.5 找不到6
2.1.6 修改文件7
2.2 编译CUI程序...................................................................................................7
I
第1章 C++Builder
第1章 C++Builder
本章参考了RTKLIB 2.4.2 的帮助文档《docmanual_》第4章,
将使用C++Builder编译器编译RTKLIB源代码。
1.1 下载、安装 Embarcadero RAD Studio
下载 Embarcadero RAD Studio XE2 with Update 4 Hotfix 1 v16.0.4504.
48759,详细信息如下:
网址 /download/radstudio/xe2/delphicbuilder
_xe2_4504_
Size 2.59 GB(2,789,044,224 字节)
CRC32 59DA6879
MD5 F60B93A903E75EA903B289320AD1B0E3
SHA1 DC55555A83E1B5E12C546BF7FFA2374A475C9196
下载完成后,安装 Embarcadero RAD Studio XE2。
1.2 打开工程
运行 Embarcadero RAD Studio XE2,单击【File】【】菜单
项,如下图所示:
图1.1
1
第1章 C++Builder
打开 app目录下的rtklib_roj,如下图所示:
图1.2
说明:打开rtklib_roj可编译生成所有GUI(图形界面)程序;
打开rtklib_roj可编译生成所有CUI(命令行)程序;也可直接
打开某个项目文件,如:。
1.3 编译
以编译为例,在Project Manager窗口内鼠标右键单击,
弹出菜单中单击【Make】或【Build】菜单项(Build全部重新编译一遍;Make
只编译修改后的*.c文件),如下图所示:
2
第1章 C++Builder
图1.3
注意:RTKLIB的全路径名里不要含有汉字,否则编译rtknavi_mkl、rtkpo
st_mkl时会失败。
1.4 将*.exe复制到bin目录
运行,会将编译结果文件appstrsvrRelease_Buildstrsvr.
exe复制到bin目录;
运行appinstall_,会将所有GUI程序的编译结果文件复制到bin
目录;
运行appinstall_,会将所有CUI程序的编译结果文件复制到bi
n目录。
3
第2章 VC++
第2章 VC++
RTKLIB的源代码分为三个部分:
1)核心计算代码在src目录下,这部分代码可以使用VC++编译;
2)CUI程序 convbin、pos2kml、rnx2rtkp 的源代码。这部分代码也可以
使用VC++编译;
3)GUI程序rtkconv、rtkget、rtklaunch、rtknavi、rtknavi_mkl、rtkplot、rt
kpost、rtkpost_mkl、srctblbrows、strsvr的源代码。这部分代码使用了VCL,所
以无法使用VC++编译。
2.1 编译核心代码
本节以VS2010为例,说明如何编译RTKLIB核心代码。
2.1.1 添加核心代码文件
使用VS2010创建一个静态库项目rtklib。
添加RTKLIB 2.4.2的核心代码到项目rtklib里,具体如下:
1)添加 rtklib_2.4.2src*.* 到项目rtklib里;
2)添加 rtklib_2.4.2srcrcv*.* 到项目rtklib里。
2.1.2 禁用预编译头文件
按下图进行配置,禁用预编译头文件的功能
4
第2章 VC++
图2.1
2.1.3 使用MBCS字符集
RTKLIB源代码使用的是MBCS字符集,并不是Unicode字符集,所以需
要按下图进行配置:
图2.2
2.1.4 修改rtklib.h
5
第2章 VC++
增加下面蓝色语句到rtklib.h文件里
#ifndef RTKLIB_H
#define RTKLIB_H
#ifdef _MSC_VER //使用 VC++ 编译
#define DLL
#define ENACMP //enable BeiDou
#define ENAGAL //enable Galileo
#define ENAGLO //enable GLONASS
#define ENAQZS //enable QZSS
#define EXTLEX //enable QZSS LEX extension
#define _CRT_SECURE_NO_WARNINGS
#pragma comment(lib,"")
#pragma comment(lib,"ws2_")
#endif
#include
2.1.5 找不到rtklib.h
编译 rtklib_2.4.2srcrcv*.c时会提示找不到文件rtklib.h,有两种解决方法:
一是修改rtklib_2.4.2srcrcv*.c,将 #include "rtklib.h" 更改为#include "..
/rtklib.h"
二是增加包含目录,如下图所示:
图2.3
静态库项目文件为W:j;
rtklib.h全路径名为W:rtklib_2.4.2srcrtklib.h;
../../rtklib_2.4.2/src是rtklib.h相对于.vcxproj的相对路径。
6
第2章 VC++
2.1.6 修改文件srcrcvrcvlex.c
修改文件srcrcvrcvlex.c,见下面的蓝色语句:
/* decode lex raw message ---------------------------------------------------*/
static int decode_lexr(raw_t *raw)
{
…… …… ……
if (raw->outtype) {
sprintf(raw->msgtype,"LEXR 0x%04X (%4d): stat=%08X week=
%d tow=%10.3f",
type,raw->len,stat,week,tow/1000.0);
} //这里缺少一个右花括号,补上
switch (type) {
case ID_LEXRAW: return decode_lexraw(raw);
case ID_LEXMSG: return decode_lexmsg(raw);
}
return 0;
}
2.2 编译CUI程序
以编译rnx2rtkp为例说明CUI程序的编译。
使用 Visual Studio打开rtklib_,仅保留文件
rnx2rtkp.c,然后加入上一节的静态库rtklib。如下图所示:
图2.4
对于VS2008及其以下版本的Visual Studio,请设置msc依赖于rtklib;对
于VS2010及其以上版本的Visual Studio,请在msc里引用rtklib。如此设置后,
编译msc时将自动连接。
修改rnx2rtkp.c,共有两处,见下面的蓝色语句
#include "../../src/rtklib.h" //rtklib.h前增加 ../../src/
7
第2章 VC++
#if 0 //禁用函数 showmsg、settspan、settime
extern int showmsg(char *format, ...)
{
va_list arg;
va_start(arg,format); vfprintf(stderr,format,arg); va_end(arg);
fprintf(stderr,"r");
return 0;
}
extern void settspan(gtime_t ts, gtime_t te) {}
extern void settime(gtime_t time) {}
#endif
8
版权声明:本文标题:编译RTKLIB 2.4.2-18.06.06 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714001511a661388.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论