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. SpringCloud成长之路 一 注册与发现(Eureka)
  2. 05APR2022 日期格式这样的怎么转换成日期?
  3. [Windows]查看运行进程的参数【wmic】
  4. Linux下Nginx访问web目录提示403Forbidden
  5. 【原】android【手机】屏幕适配解决方案,完美适配适配hdpi,xhdpi,xxhdpi的做法。...
  6. 云图说|华为云数据库在线迁移大揭秘
  7. 【Elasticsearch】Elasticsearch 优化写入流程实现NRT近实时(filesystem cache,refresh)
  8. 巨头垂涎却不能染指,loT 数据库风口已至
  9. git常用命令--tag
  10. 数据挖掘是如何解决问题的
  11. 基于Springboot+Vue.js的校园二手商城
  12. 非均匀有理B-样条(Non-Uniform Rational B-Splines, NURBS)基础知识
  13. 重邮数据结构实验课全部代码目录
  14. oninput onpropertychange
  15. 苹果7p更新系统老是服务器出错,7p为什么无法更新系统 7p无法更新系统怎么办...
  16. c语言 while 怎样用,C语言 while 的用法
  17. 7月26日 select单表查询基础语句
  18. 开放式耳机怎么选,最适合佩戴的几款耳机推荐
  19. 小样本点云深度学习库_基于点云深度学习的点云数据集制作系统及方法与流程...
  20. 【调剂】东华理工大学2020年硕士研究生预调剂信息

热门文章

  1. Unity MVC 案例学习笔记《二》
  2. Mac下tun的测试
  3. java setTimestamp 时间不对
  4. linux路由表命令,Linux的路由表详细介绍
  5. 如果公众号有粉丝或者有比较多社群,怎么将它们变现?
  6. 软件测试常见的状态码,软件测试-面试总结
  7. nodejs javascript 的 then 用法 , Promise
  8. 码农的一天是怎么过的?
  9. 设备5S管理点检图文标准及注意事项
  10. xamarin android 书,xamarin android 开发