• CentOS7系统上的GPSTK源码安装


    网址: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

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

  • 相关阅读:
    CDH5.13 集成Kerberos配置
    使用bash脚本删除文件最后几行
    yolov3模型微调(fine-tune)备忘
    ubuntu 18.04 rsync 命令使用 服务端配置
    python 子包调用 跨目录调用
    [转]命令行界面 (CLI)、终端 (Terminal)、Shell、TTY的联系与区别
    bash shell 判断变量是否在列表中
    TensorFlow 图像分类模型 inception_resnet_v2 模型导出、冻结与使用
    numpy 数组集合运算及下标操作
    Win10 Service'MongoDB Server' failed to start. Verify that you have sufficient privileges to start system services【简记】
  • 原文地址:https://www.cnblogs.com/snake553/p/6955657.html
Copyright © 2020-2023  润新知