网址:http://www.gpstk.org/bin/view/Documentation/BuildingGPSTkUnderUnix

这里使用Cmake来安装源码,网站上的原文摘抄如下,有少部分作了修改的地方,使用红色字体和下划线来标识。

The following procedure will build and install the GPSTk.

  1. Ensure that prerequisites such as CMake have been installed.
  2. Download the GPSTk source distribution.
  3. Extract the GPSTk tarball. For example, using GNU tar
    tar xvzf gpstk.tar.gz
  4. Create a directory for your build. For example, change into the gpstk/directory and type
    mkdir build
  5. Change into the gpstk/build directory, this will be where all of the build files will reside.
  6. If GPSTk Core will be installed as a system library in /usr/local, execute the following commands:
    cmake ../dev
    make

    To install to a different directory, the install directory must be set-up when CMake configures the makefiles, add the following command:

    -DCMAKE_INSTALL_PREFIX:PATH=/path/to/install

    To build GPSTk with Ext, in addition to Core, add the following command:

    -DBUILD_EXT=ON
     

    To turn on processing of python extension package, add the following command:

    -DBUILD_PYTHON=ON

    To turn on test mode, add the following command:

    -DTEST_SWITCH=ON

    Example - Command for building GPSTk with core, ext, python, and test code and installing to sytem library in /usr/local:

    [She@she-centos7 gpstk-2.5.src]$ sudo mkdir /opt/gpstk-2.5.linux.x86_64
    [She@she-centos7 gpstk-2.5.src]$ cd build
    [She@she-centos7 build]$ cmake -DBUILD_EXT=ON -DBUILD_PYTHON=ON -DTEST_SWITCH=ON ../dev
    -- The C compiler identification is GNU 4.8.5
    -- The CXX compiler identification is GNU 4.8.5
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    system = Linux-3.10.0-514.16.1.el7.x86_64
    system_name = Linux
    Notice: Will install GPSTk to the path /opt/gpstk-2.5.linux.x86_64
    -- Configuring done
    -- Generating done
    CMake Warning:
    Manually-specified variables were not used by the project: BUILD_EXT
    BUILD_PYTHON -- Build files have been written to: /home/She/Downloads/GPSTK/gpstk-2.5.src/build
     
  7. To install GPSTk, execute
    sudo make install
  8. To test GPSTk (if Test_Switch=ON), execute
    sudo make test
  9. To build the source documentation using doxygen: Change into the gpstk/dev directory (if using Developer repo) or the gpstk/directory (if using the tarball), and type
    doxygen

接下来,选择 GPSTK 网站提供的例一作为测试对象,看程序的功能是否可用。

编译文件 Makefile 内容如下:

PROGRAM    = example
RM = rm -f
CC = g++ SOURCES = example1.cpp
OBJECTS = ${SOURCES:%.cpp=%.o} LIBPATH += -L/usr/local/lib LIBS = -lgpstk all: ${PROGRAM} ${PROGRAM}: ${SOURCES} ${OBJECTS}
${CC} -o ${PROGRAM} ${LIBPATH} ${OBJECTS} ${LIBS} clean:
${RM} ${OBJECTS} ${PROGRAM}

编译可以正常通过,但是运行时总是报错,提示

$ make -o example -L/usr/local/lib -lgpstk example1.cpp
$ ./example error while loading shared libraries: libgpstk.so: cannot open shared object file: No such file or directory

经查,这个文件/usr/local/lib/libgpstk.so,确实存在,那么,就是默认搜索时找不到这个路径。

为了解决这个bug,我们将这个文件映射到默认搜索路径/usr/lib下:

$ sudo ln -s /usr/local/lib/libgpstk.so /usr/lib/libgpstk.so

再重新编译和运行程序,就一切正常了:

$ make clean
$ make
$ ./example
Hello world!
The current civil time is 06/07/2017 07:16:53 UTC
The current year is 2017
The current day of year is 158
The current second of day is 26213.5
The current full GPS week is 1952
The current short GPS week is 928
The current day of GPS week is 3
The current second of GPS week is 285414
The current Modified Julian Date is 57911.303397479 UTC

如果添加软链接之后仍不奏效,则添加环境变量,使它在运行时能搜索到相应的库文件: $ sudo vi /etc/profile.d/GPSTKsetvar.sh ,添加以下内容:

# setting environment variables for GPSTK, edit by She
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib:/usr/lib

并更新环境变量: source /etc/profile.d/GPSTKsetvar.sh 。

再次编译并运行,即可得到正确的运行结果。

CentOS7系统上的GPSTK源码安装的更多相关文章

  1. CentOS7系统上的LAPACK源码安装

    参考链接:linux下安装blas和lapack BLAS 和 LAPACK 这两个数学库是很多 Linux 科学计算软件需要调用的,所以经常会用到. LAPACK,其名为Linear Algebra ...

  2. CentOS7系统上的GPSTK示例代码调试 & 运行结果 & 心得

    下载的源码程序包中,共有16个例子,这里记录它们的调试及运行结果,尤其是哪些可用,哪些不可用,今后使用时用作参考. 总结: (1)在 18 个示例程序中,example16 和 example17 编 ...

  3. Centos7服务器中通过编译源码安装MySQL

    基于在Centos7服务器上使用 yum 安装MySQL5.7到默认路径 在修改文件存储位置的时候,折腾了一番没有将成功将datadir修改为我想要的位置 我决定再尝试一下通过编译源码来自定义安装: ...

  4. 在ConoHa上Centos7环境下源码安装部署LNMP

    本文记录了从源码,在Centos 7上手动部署LNMP环境的过程,为了方便以后对nginx和mariadb进行升级,这里采用yum的方式进行安装. 1.建立运行网站和数据库的用户和组 groupadd ...

  5. [原创]在Centos7.2上源码安装PHP、Nginx、Zentao禅道

    版本 操作系统:CentOS Linux release 7.2.1511 (Core) PHP:5.6.33 Nginx:1.12.2 MySQL:5.6.38(192.168.1.103的Wind ...

  6. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  7. CentOS7下源码安装mysql5.6

    目录 准备工作 运行环境 确认你的安装版本 下载mysql 安装mysql 准备安装环境 编译和安装 配置mysql 单实例配置      单实例配置方法          添加防火墙         ...

  8. centos7 中源码安装nginx

    使用nginx有一段时间了,还是有很多东西不懂的,在这里做一下自己学习过程中的一些整理,能使自己得到提升. 1.环境:centos7 1511  最小化安装 2.下载nginx,可以在系统中下载,也可 ...

  9. CentOS7(Linux)源码安装MySQL5.7.X

    介绍 软件应用最重要的就是数据库了,可是还有小伙伴不会在Linux上安装MySQL数据库,今天就来讲讲如何在CentOS7环境使用源码进行安装MySQL5.7.X. MySQL官网下载链接:https ...

随机推荐

  1. ss命令详解

    ss是Socket Statistics的缩写.顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息 ...

  2. java线程学习之Sleep方法

    sleep方法是在线程中常用到的一个方法,它是一个静态方法. sleep(long millis)       在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度 ...

  3. asp.net处理机制管道事件

    自定义的托管模块HTTP模块可以向System.Web.HttpApplication对象注册下面一系列事件: AcquireRequestState 当ASP.NET运行时准备好接收当前HTTP请求 ...

  4. Linux 开放端口号(mysql开启远程连接)

    在 Centos 7 或 RHEL 7 或 Fedora 中防火墙由 firewalld 来管理,而不是 iptables. 一.firewalld 防火墙语法命令如下:启用区域端口和协议组合 fir ...

  5. nginx rewrite (转发)

    1.location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所 ...

  6. mybatis之Mybatis_demo

    这篇博文通过简单的CRUD案例,让大家能够快速的上手,使用mybatis.   1,在eclipse中新建java project项目 mybatis_demo 2,在mybatis_demo项目中建 ...

  7. JQuery-FullCalendar 多数据源实现日程展示

    背景 本次需求:实现在一个以月为界面的日历上展示每天发生的事件. 1.每天的事件有多个类型,不同类型的事件使用不同背景色标注,展示为某个类型事件的统计,比如: 会议(6) 2.点击某一天可以查询改天所 ...

  8. 7、Dockerfile详解

    参考: https://www.imooc.com/article/details/id/25229 https://www.cnblogs.com/panwenbin-logs/p/8007348. ...

  9. webpack创建页面的过程

    1.项目文件夹中创建各类型文件放置的文件夹,如:iTestingWeb文件夹下创建src dist文件夹,用途:src为源码 dist为生成后的文件放置位置,然后在源码文件夹中进一步按文件类型增加文件 ...

  10. Hadoop之HDFS概述

    一.HDFS产生背景及定义 1.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文 ...