将RTKLIB编译成静态库
rtklib编译
在写自己的程序时,想要调用rtklib.h,和它的一些文件来进行运行,想要将rtklib编译成静态库安装在系统的目录下,这样基于rtklib的二次开发就不用再使用源码了,直接引用静态库即可。
静态库和动态库的区别可以参考动、静态库
编译过程
https://github.com/libing64/learning_rtklib.git参照github上提供的文件,它基于rtklib使用其中的一些函数对卫星观测的一些文件进行读取信息。按照所提供的README进行编译。
将RTKlib git到当前的文件下,转到RTKLIB/src,创建build文件夹
别人提供的cMakeLists.txt,先在指定的目录下进行cmake,得到需要的Makefile
进行make,在将rtkcnm.c编译成rtkcnm.c.o时报错
/Users/wcli/Desktop/RTKLIB_TEST/learning_rtklib-master/RTKLIB/src/rtkcmn.c:2983:21:
error: implicit declaration of function 'strtok_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
strtok_r函数是在string.h中,而我们的头文件中引用了#include “rtklib.h”,rtklib.h中包含了string.h所以头文件是没有问题的。
但在string.h中找到对strtok_r函数的定义,他要求在__DARWIN_C_LEVEL >= 199506L
的条件下才起效果,但在rtkcmn.c的开头中定义为:#define _POSIX_C_SOURCE 199309
__DARWIN_C_LEVEL :应该是一种规范的宏定义,应该在书写的过程中没有问题。
_POSIX_C_SOURCE:如果您在使用GCC的Linux上工作,那么默认情况下它在-std=gnu11或-std=gnu90模式下工作,并且POSIX(以及其他一些)符号集是可见的,而无需设置_XOPEN_SOURCE或_POSIX_C_SOURCE或其他类似的宏。如果使用-std=c11或-std=c99等,则POSIX和GNU符号在默认情况下不可用;必须定义XOPEN_SOURCE或POSIX_C_SOURCE才能看到POSIX符号。
POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )
POSIX符号与正则表达式搭配使用,例如可以搜索文件的名称
编译的过程出现的问题不是太清楚,重新在虚拟机上安装文档中给的CMakeLists进行编译可以完成,(此时采用的是RTKLIB 2.4.2)这样在我的
cd ~/桌面/learning_rtklib-master/RTKLIB-master/src/build中编译得到了librtklib.a这个静态库
- 然后再利用sudo make install 将这个库传递到本地的usr/local/lib中,方便以后直接进行调用。
接下来便可以对所写的函数进行编译:
cd cd ~/桌面/learning_rtklib-master
mkdir build
cd build
cmake ..
make
接着便可以调用编译完成的可执行程序
将RTKLIB编译成静态库相关推荐
- libYUV编译成静态库以及使用
简介 Google提供了一套Image的开源库libyuv(git clone https://chromium.googlesource.com/libyuv/libyuv),实现对各种yuv数据之 ...
- vs如何把c语言编译成静态库,VS中Debug和Realease、及静态库和动态库的区别整理(转)...
一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...
- 易语言和python混合编程_易语言python交互源码,不需要把易语言编译成静态库
.版本 2 .支持库 spec .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 .局部变量 mothod, PyMethodDef .局部变量 创建结果, 整数型 .局部变量 错 ...
- Android导入第三方静态库.a编译成动态库.so
http://ikinglai.blog.51cto.com/6220785/1324985 在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己 ...
- android.bp编译生成so,Android导入第三方静态库.a编译成动态库.so
在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己的代码一去编译成动态库so,但是如果没有源码的话,你就必须在自己的动态库so里面将别人生成好的 ...
- Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明
本文描述的是windows系统下,通过qtcreator在pro文件中添加动态库与静态库的方法: 1.添加动态库(直接添加动态库文件.dll,非子项目) 通过qtcreator创建动态库的方法就不在此 ...
- iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)
C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...
- iOS架构-c++工程在Mac下编译成.a库并调用(12)
请先了解:xcode生成静态库文件.a 前言: 有时侯需要使用c++的一些代码库,这里先讲一下用Xcode 建C++ 工程,并将代码编译成.a库,提供给demo使用.这里只是简单的介绍,以后会继续介绍 ...
- Linux中gcc的编译、静态库和动态库的制作
欢迎大家关注笔者,你的关注是我持续更博的最大动力 Linux中gcc的编译.静态库.动态库 文章目录: 1 gcc的编译过程 1.1 gcc的编译过程 1.2 gcc的常用参数 2 gcc 静态库的制 ...
最新文章
- PageOffice实现js执行在线编辑时Word文档中的宏命令
- JAVA中浅复制与深复制
- 【转】ABP源码分析四十二:ZERO的身份认证
- 无线Hacking之D.O.S与AP欺骗
- 【竞赛篇-国创(大创)结题】国创(大创)立项后的基本流程、需要用什么结题、如何快速结题
- 自定义浏览器UA标识
- html制作动物百科网站,Steam疯狂周三游戏推荐:动物百科全书
- oracle自增序列带字母,[原创]Oracle自增序列
- python里面的pip是什么意思_python中pip是什么
- 计算机英特尔显卡在哪找,英特尔®显卡和 Windows 7 * 常见问题解答
- python简单实现排列和组合的计算
- WCDMA中的CQI
- CSS设置文本、段落样式
- JAVA 繁体 转 简体 简体转翻译 繁体简体互转
- android网页编辑软件,HTML5编辑器
- Java 数字转字符串并指定位数,位数不足,自动补零
- 目的地址,源地址防火墙双向nat转换
- java学习2018年_Java 20年
- 笑话集原创笑话精品展3
- Docker多容器搭建LNMP