在Ubuntu18.04安装GMT-6.1.1(在 Linux 下编译 GMT 源代码)_ubuntu 安装 gmt-程序员宅基地

技术标签: ubuntu  linux  

参考:GMT中文社区
写本文的目的:参考了CSDN上面许多安装GMT方法但是安装过程出现了各种问题,可能因为下载了官网的最新版本,而CSDN都是老版的安装方法有些地方不适用,走了好多弯路。后来才发现GMT中文社区的v6.1手册把你想知道的都罗列的非常清楚(免费下载),包括非常详细的安装步骤,下面是对应在Linux 下编译 GMT 源代码的详细步骤,亲测有效!

1 、编译及运行依赖
GMT 的编译及运行需要如下软件:
• CMake: >=2.8.12
• netCDF(>=4.0 且支持 netCDF-4/HDF5)
• curl
除此之外,还可以安装如下软件库以增强 GMT 的更多功能:
• Ghostscript: 生成 PDF 或者其他位图格式的图片
• GDAL: 读写其它地学常用的网格和图片格式
• PCRE: 正则表达式支持
• FFTW: 快速傅里叶变换库(>=3.3,macOS 下不需要)
• GLib: GTHREAD 多线程支持
• LAPACK: 快速矩阵反演库(macOS 下不需要)
• BLAS:快速矩阵运算库(macOS 下不需要)
• GraphicsMagick: 生成 GIF 格式的动画
• FFmpeg: 生成 MP4 格式的动画

2、 安装依赖软件

$ sudo apt update
# 安装编译所需软件包
$ sudo apt install build-essential cmake libcurl4-gnutls-dev libnetcdf-dev
# 安装可选软件包
$ sudo apt install ghostscript gdal-bin libgdal-dev libglib2.0-dev libpcre3-dev libfftw3-dev liblapack-dev
# 安装制作动画所需的软件包
$ sudo apt install graphicsmagick ffmpeg

3 、下载源码及数据
编译 GMT 需要下载如下三个文件:

  1. GMT 6.1.1 源码:gmt-6.1.1-src.tar.gz
  2. 全球海岸线数据 GSHHG:gshhg-gmt-2.3.7.tar.gz
  3. 全球数字图表 DCW:dcw-gmt-1.1.4.tar.gz

4 、安装GMT
将下载的三个压缩文件放在同一个目录里,按照如下步骤进行安装:

# 解压三个压缩文件
$ tar -xvf gmt-6.1.1-src.tar.gz
$ tar -xvf gshhg-gmt-2.3.7.tar.gz
$ tar -xvf dcw-gmt-1.1.4.tar.gz
# 将 gshhg 和 dcw 数据复制到 gmt 的 share 目录下
$ mv gshhg-gmt-2.3.7 gmt-6.1.1/share/gshhg-gmt
$ mv dcw-gmt-1.1.4 gmt-6.1.1/share/dcw-gmt
# 切换到 gmt 源码目录下
$ cd gmt-6.1.1
# 用文本编辑器新建并打开 CMake 用户配置文件
$ gedit cmake/ConfigUser.cmake

向 cmake/ConfigUser.cmake 文件中加入如下语句:

#注1:第一个命令行建议更改在/home/xxx/software/GMT-6.1.1 等有可读写权限的路径,
#以后执行不用转到root权限直接在用户权限即可,
#而默认的/opt/GMT-6.1.1有时需要root权限
#注2:2-4行是因为运行相关GSHHG命令出错后对比v5.4版本添加的,如不需要可不加
set (CMAKE_INSTALL_PREFIX "/opt/GMT-6.1.1")
set (COPY_GSHHG TRUE)
set (COPY_DCW TRUE)
set (GMT_INSTALL_MODULE_LINKS FALSE)
set (GMT_USE_THREADS TRUE)
set (GMT_ENABLE_OPENMP TRUE)

继续执行如下命令以检查 GMT 的依赖是否满足:

 #注意,此处新建的 build 文件夹位于 gmt-6.1.1 目录下,不是 gmt-6.1.1/cmake 目录下
$ mkdir build
$ cd build/
$ cmake ..

cmake … 会检查系统软件是否满足 GMT 的依赖关系,过程中会输出大量信息,并在最后汇总输出检查结果。我们只需要关注检查结果是否正确即可。正常情况下结果结果如下,若存在一些差异也没有问题。只要过程中不出现报错,即可。如果出现报错,则需要检查之前的步骤是否有误,检查完成后删除原 build 目录再新建build,继续执行 cmake …,直到出现类似的检查结果:

*
* GMT Version: : 6.1.1
*
* Options:
* Found GSHHG database : /home/user/GMT/gmt-6.1.1/share/gshhg (2.3.7)
* Found DCW-GMT database : /home/user/GMT/gmt-6.1.1/share/dcw-gmt (1.1.4)
* Found GMT data server : https://oceania.generic-mapping-tools.org
* NetCDF library : /usr/lib64/libnetcdf.so
* NetCDF include dir : /usr/include
* GDAL library : /usr/lib64/libgdal.so
* GDAL include dir : /usr/include/gdal
* FFTW library : /usr/lib64/libfftw3f.so
* FFTW include dir : /usr/include
* Accelerate Framework :
* Regex support : PCRE (/usr/lib64/libpcre.so)
* ZLIB library : /usr/lib64/libz.so
* ZLIB include dir : /usr/include
* LAPACK library : yes
* BLAS library : yes
* License restriction : no
* Triangulation method : Shewchuk
* OpenMP support : enabled
* GLIB GTHREAD support : enabled
* Build mode : shared
* Build GMT core : always [libgmt.so]
* Build PSL library : always [libpostscriptlight.so]
* Build GMT supplements : yes [supplements.so]
* Build GMT Developer : yes
* Build proto supplements : none
* Found Ghostscript (gs) : yes (9.50)
* Found GraphicsMagick (gm) : yes (1.3.33)
* Found ffmpeg : yes (4.2.1)
* Found open : yes
* Found ogr2ogr : yes (2.4.2)
* Found gdal_translate : yes (2.4.2)
*
* Locations:
* Installing GMT in : /opt/GMT-6.1.1
* GMT_DATADIR : /opt/GMT-6.1.1/share
* GMT_DOCDIR : /opt/GMT-6.1.1/share/doc
* GMT_MANDIR : /opt/GMT-6.1.1/share/man
-- Configuring done
-- Generating done

检查完毕后,开始编译和安装:

$ make
$ sudo make install

5、 修改环境变量
打开终端,使用如下命令用文件编辑器打开 Bash 配置文件:

$ gedit ~/.bashrc

然后向文件末尾加入如下语句以修改环境变量。修改完成后保存文件并退出,然后重启终端使其生效:

export GMT6HOME=/opt/GMT-6.1.1
export PATH=${
    GMT6HOME}/bin:$PATH
export LD_LIBRARY_PATH=${
    LD_LIBRARY_PATH}:${
    GMT6HOME}/lib64

6、 测试是否安装成功
重新打开一个终端,键入如下命令,若正确显示 GMT 版本号,则表示安装成功:

$ gmt --version
6.1.1
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44259058/article/details/115375812

智能推荐

STM32接GSM模块(只用TX RX)_32板子上连接gsm模块的串口是哪个-程序员宅基地

文章浏览阅读5.5k次,点赞2次,收藏9次。这几天尝试了下STM32的USART3去接gsm模块。整了好久没整出来,甚是纠结。途中遇到两个问题:1.USART3配置问题 2.接线问题USART3也是重映射到PC10 PC11这两个口的,所以要有GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);其实最主要的问题就是接线问题,即模块电压和MCU电压不一样。我的GSM模块_32板子上连接gsm模块的串口是哪个

阅读笔记-HTTP返回状态码-程序员宅基地

文章浏览阅读124次。HTTP返回状态码1 HTTP超文本协议HTTP是基于客户端/服务端(C/S)的框架模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。一个HTTP“客户端”是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP请求的目的。一个HTTP“服务器”同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器..._nginx 请求头太大(nginx) nginx 内置代码和 431 类似。

算法:堆排序之每次输入插一次堆&输入完成后建堆_堆排序的过程中,每次进行堆调整后,打印输出堆的次序-程序员宅基地

文章浏览阅读576次。1./*Name:插入堆排序(A[0]为空情况)Coder:Lou JianghuiTime:22:49-23:07*/#include#include#includeusing namespace std;int A[1000];int n;void print(int n){ for (int i = 1;_堆排序的过程中,每次进行堆调整后,打印输出堆的次序

【HLL】使用 HyperLogLog 去重案例_hyperloglog可以处理带重复元素的流数据吗-程序员宅基地

文章浏览阅读695次。1.概述HyperLogLog一个常用的场景就是统计网站的UV。##基数 简单来说,基数(cardinality,也译作势),是指一个集合(这里的集合允许存在重复元素)中不同元素的个数。例如看下面的集合: {1,2,3,4,5,2,3,9,7} 这个集合有9个元素,但是2和3各出现了两次,因此不重复的元素为1,2,3,4,5,9,7,所以这个集合的基数是7。maven <dependency> <groupId>net.agkn</grou._hyperloglog可以处理带重复元素的流数据吗

Navicat模型中的表展示注释的方法_navicat在表对象界面显示表的备注-程序员宅基地

文章浏览阅读1.2w次,点赞3次,收藏8次。先展示下效果图:Navicat不能直接将注释展示在表模型上,需要曲线救国。展示表的中文名方法:选中画布上的一个表模型,然后在左侧的图表页签中将“显示描述”勾选中,表模型上方会自动出现一个描述框,选中描述框右键选择编辑,填写表的中文名即可。展示表字段对应的中文名的方法:选择左侧的新建笔记,然后右键选中笔记,选择样式为标签,对应表字段顺序输入中文名称,最后将标签调整到适当位置即可。标签的样式也可以通过左侧属性配置进行修改,比如间距,字体大小之类。..._navicat在表对象界面显示表的备注

推导部分和【蓝桥杯国赛】_推导部分和 带权并查集 蓝桥-程序员宅基地

文章浏览阅读141次。对于一个长度为N的整数数列A1​A2​⋯AN​,小蓝想知道下标l到r的部分和il∑r​Ai​Al​Al1​⋯Ar​是多少?然而,小蓝并不知道数列中每个数的值是多少,他只知道它的M个部分和的值。其中第i个部分和是下标li​到ri​的部分和∑jli​ri​​Ali​​Ali​1​⋯Ari​​, 值是Si​。_推导部分和 带权并查集 蓝桥

随便推点

spring数据源配置:Tomcat/weblogic数据源切换配置_tomcat 数据库切换-程序员宅基地

文章浏览阅读1.4k次。数据配置方式一般是三种:1.org.springframework.jdbc.datasource.DriverManagerDataSource(没有池概念,有连接就建立一个connection)2.org.apache.commons.dbcp.BasicDataSource(连接池技术)3.org.springframework.jndi.JndiObjectFactoryBea..._tomcat 数据库切换

计算机组成原理 之 计算题、分析题 题解详细总结(已完结)_计算机组成原理计算题-程序员宅基地

文章浏览阅读1.7w次,点赞62次,收藏544次。第1章 计算机系统概述0、1编码第2章 存储系统磁盘存储器第6章 控制器逻辑Intel 8086 指令简介第1章 计算机系统概述0、1编码1、分别求出+1111B和-1001B的真值及其机器数的原码、反码、补码形式。答案:+1111B的真值:15原码01111 反码01111 补码01111-1001B 的真值:-9原码11001 反码10110 补码10111另一种写法:解: +1111B 真值:15D [x]原=01111B [x]反=01111B [x]补=011._计算机组成原理计算题

react-native 0.57 版本更新日志-程序员宅基地

文章浏览阅读647次。[0.57]欢迎来到React Native版本的0.57版!这个版本解决了许多问题,并有一些令人兴奋的改进。我们再次跳过了一个月发布,通过扩展发布候选阶段关注质量,并且兼容之前的版本这个版本包括599提交由73个不同的贡献者!为了响应反馈,我们准备了一个只包含用户影响的更改的变更日志。请分享您的意见,并让我们知道我们如何使这更有用,如果您对此有任何反馈,和往常一样请告知我们let us kn..._react-native 0.57版本文档

【IDEA&Eclipse快捷键对照表】_eclipse的folder对应idea的哪个-程序员宅基地

文章浏览阅读4.6k次,点赞8次,收藏44次。IDEA Comment Eclipse Comment Remark Ctrl+Alt+H 调用层次 Ctrl+Alt+H 开放的调用层次结构 Ctrl+E 展示打开的文件(快速转换编辑器) Alt+7 当前文件结构 Ctrl+O 当前文件结构 Ctrl+H 查看Java类层次结构 Ctrl+....._eclipse的folder对应idea的哪个

修改pycharm目录后,无法打开的问题!!!_为什么修改已安装的pycharm的安装路径会打不开软件-程序员宅基地

文章浏览阅读2.1k次。最近因为一些操作,想将命名不规范的pycharm安装目录的空格删掉,但是删掉以后,发现pycharm怎么也打不开了。在将脑汁都绞尽以后,参考一篇博客,终于发现了问题所在https://blog.csdn.net/weixin_45696455/article/details/106414316在看了上面一篇博客后,谢谢哥,茅塞顿开,原来是我破解的.vmoption文件问题,里面写了破解包路径,一旦修改pycharm路径后,将无法找到该破解包。但当我在文件夹打开.vmoption文件以后,发现我并没有写破_为什么修改已安装的pycharm的安装路径会打不开软件

labview中visa插件安装教程_nivisa安装教程-程序员宅基地

文章浏览阅读2.2w次,点赞7次,收藏29次。1.在NI官网下载VISA,上一篇文章中已经讲到,此处不再赘述。2.关到电脑的所有杀毒软件,非常重要。3.点击运行。4.一直点击next,在需要更改安装目录时,自己更改(最好不要安装在C盘)。5.安装结束后,在最新安装目录下查找NI-MAX。可以直接将他拖动到桌面即可。打开后查看设备与接口若发现里面含有内容,则安装成功,如下图所示。..._nivisa安装教程

推荐文章

热门文章

相关标签