参考: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 需要下载如下三个文件:
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
文章浏览阅读5.5k次,点赞2次,收藏9次。这几天尝试了下STM32的USART3去接gsm模块。整了好久没整出来,甚是纠结。途中遇到两个问题:1.USART3配置问题 2.接线问题USART3也是重映射到PC10 PC11这两个口的,所以要有GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);其实最主要的问题就是接线问题,即模块电压和MCU电压不一样。我的GSM模块_32板子上连接gsm模块的串口是哪个
文章浏览阅读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;_堆排序的过程中,每次进行堆调整后,打印输出堆的次序
文章浏览阅读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可以处理带重复元素的流数据吗
文章浏览阅读1.2w次,点赞3次,收藏8次。先展示下效果图:Navicat不能直接将注释展示在表模型上,需要曲线救国。展示表的中文名方法:选中画布上的一个表模型,然后在左侧的图表页签中将“显示描述”勾选中,表模型上方会自动出现一个描述框,选中描述框右键选择编辑,填写表的中文名即可。展示表字段对应的中文名的方法:选择左侧的新建笔记,然后右键选中笔记,选择样式为标签,对应表字段顺序输入中文名称,最后将标签调整到适当位置即可。标签的样式也可以通过左侧属性配置进行修改,比如间距,字体大小之类。..._navicat在表对象界面显示表的备注
文章浏览阅读141次。对于一个长度为N的整数数列A1A2⋯AN,小蓝想知道下标l到r的部分和il∑rAiAlAl1⋯Ar是多少?然而,小蓝并不知道数列中每个数的值是多少,他只知道它的M个部分和的值。其中第i个部分和是下标li到ri的部分和∑jliriAliAli1⋯Ari, 值是Si。_推导部分和 带权并查集 蓝桥
文章浏览阅读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._计算机组成原理计算题
文章浏览阅读647次。[0.57]欢迎来到React Native版本的0.57版!这个版本解决了许多问题,并有一些令人兴奋的改进。我们再次跳过了一个月发布,通过扩展发布候选阶段关注质量,并且兼容之前的版本这个版本包括599提交由73个不同的贡献者!为了响应反馈,我们准备了一个只包含用户影响的更改的变更日志。请分享您的意见,并让我们知道我们如何使这更有用,如果您对此有任何反馈,和往常一样请告知我们let us kn..._react-native 0.57版本文档
文章浏览阅读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的哪个
文章浏览阅读2.1k次。最近因为一些操作,想将命名不规范的pycharm安装目录的空格删掉,但是删掉以后,发现pycharm怎么也打不开了。在将脑汁都绞尽以后,参考一篇博客,终于发现了问题所在https://blog.csdn.net/weixin_45696455/article/details/106414316在看了上面一篇博客后,谢谢哥,茅塞顿开,原来是我破解的.vmoption文件问题,里面写了破解包路径,一旦修改pycharm路径后,将无法找到该破解包。但当我在文件夹打开.vmoption文件以后,发现我并没有写破_为什么修改已安装的pycharm的安装路径会打不开软件
文章浏览阅读2.2w次,点赞7次,收藏29次。1.在NI官网下载VISA,上一篇文章中已经讲到,此处不再赘述。2.关到电脑的所有杀毒软件,非常重要。3.点击运行。4.一直点击next,在需要更改安装目录时,自己更改(最好不要安装在C盘)。5.安装结束后,在最新安装目录下查找NI-MAX。可以直接将他拖动到桌面即可。打开后查看设备与接口若发现里面含有内容,则安装成功,如下图所示。..._nivisa安装教程