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编译成静态库相关推荐

  1. libYUV编译成静态库以及使用

    简介 Google提供了一套Image的开源库libyuv(git clone https://chromium.googlesource.com/libyuv/libyuv),实现对各种yuv数据之 ...

  2. vs如何把c语言编译成静态库,VS中Debug和Realease、及静态库和动态库的区别整理(转)...

    一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...

  3. 易语言和python混合编程_易语言python交互源码,不需要把易语言编译成静态库

    .版本 2 .支持库 spec .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 .局部变量 mothod, PyMethodDef .局部变量 创建结果, 整数型 .局部变量 错 ...

  4. Android导入第三方静态库.a编译成动态库.so

    http://ikinglai.blog.51cto.com/6220785/1324985 在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己 ...

  5. android.bp编译生成so,Android导入第三方静态库.a编译成动态库.so

    在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己的代码一去编译成动态库so,但是如果没有源码的话,你就必须在自己的动态库so里面将别人生成好的 ...

  6. Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明

    本文描述的是windows系统下,通过qtcreator在pro文件中添加动态库与静态库的方法: 1.添加动态库(直接添加动态库文件.dll,非子项目) 通过qtcreator创建动态库的方法就不在此 ...

  7. iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)

    C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...

  8. iOS架构-c++工程在Mac下编译成.a库并调用(12)

    请先了解:xcode生成静态库文件.a 前言: 有时侯需要使用c++的一些代码库,这里先讲一下用Xcode 建C++ 工程,并将代码编译成.a库,提供给demo使用.这里只是简单的介绍,以后会继续介绍 ...

  9. Linux中gcc的编译、静态库和动态库的制作

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 Linux中gcc的编译.静态库.动态库 文章目录: 1 gcc的编译过程 1.1 gcc的编译过程 1.2 gcc的常用参数 2 gcc 静态库的制 ...

最新文章

  1. PageOffice实现js执行在线编辑时Word文档中的宏命令
  2. JAVA中浅复制与深复制
  3. 【转】ABP源码分析四十二:ZERO的身份认证
  4. 无线Hacking之D.O.S与AP欺骗
  5. 【竞赛篇-国创(大创)结题】国创(大创)立项后的基本流程、需要用什么结题、如何快速结题
  6. 自定义浏览器UA标识
  7. html制作动物百科网站,Steam疯狂周三游戏推荐:动物百科全书
  8. oracle自增序列带字母,[原创]Oracle自增序列
  9. python里面的pip是什么意思_python中pip是什么
  10. 计算机英特尔显卡在哪找,英特尔®显卡和 Windows 7 * 常见问题解答
  11. python简单实现排列和组合的计算
  12. WCDMA中的CQI
  13. CSS设置文本、段落样式
  14. JAVA 繁体 转 简体 简体转翻译 繁体简体互转
  15. android网页编辑软件,HTML5编辑器
  16. Java 数字转字符串并指定位数,位数不足,自动补零
  17. 目的地址,源地址防火墙双向nat转换
  18. java学习2018年_Java 20年
  19. 笑话集原创笑话精品展3
  20. Docker多容器搭建LNMP

热门文章

  1. Golang 实现依赖注入
  2. 华清远见-重庆中心-JAVA前端JavaScript阶段技术总结
  3. scrapy shell list crawl 命令行无显示退出 no echo quit scrapy 踩坑
  4. QQ图判断一个分布是否为正态分布
  5. linux虚拟内存超过限制,关于2G虚拟内存Linux swap限制的说明
  6. 聊个不起眼的小生意,炒货
  7. Qt5 on Wayland
  8. 2015届求职经历(转)
  9. 抓取前程无忧51job海量信息进行数据分析并进行可视化
  10. 认知篇——UML模型