日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从源码中编译安装gmt官方开发版(优先体验最新功能)

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从源码中编译安装gmt官方开发版(优先体验最新功能) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

gmt: generic mapping tools是一個通用繪圖工具,繪制曲線圖和地形圖、世界地圖或者區域地圖方面表現極其優秀!這是地球科學領域享有盛名的繪圖工具,其安裝有兩種方式:
(1)從官方發布的二進制文件安裝;
(2)從github倉庫直接clone,然后自己編譯安裝。
第二種方式的好處是可以保持與官方團隊開發版同樣的更新度(比如現在官方發布的版本是5.X,從源碼安裝可以提前使用6.0版本的modern功能)并且可以自己二次開發加入自己想要的功能,比如修改官方版本中三維顯示的bug這篇文章。當然了要想提前享受更新的功能和自己修改功能,必須要付出點代價了,就是安裝稍微有點點復雜。但是,所有的步驟都詳細的列在這里了,如果還是看不懂或者不想看,那就看下面的視頻,是我的操作錄屏!


視頻頻道:Youtube

根據gmt官方說明首先安裝所需的庫

前戲:安裝所需庫

cmake

  • 下載
  • 解壓:tar -zxvf cmake-3.13.0-rc1.tar.gz
  • 配置:make build , cd build, ../configure --prefix=/usr/local
  • make
  • make install
  • netcdf

    github倉庫

    netCDF依賴庫

    m4

    安裝 sudo apt-get install m4

    HDF5

  • 下載
  • 解壓:tar xvf hdf5-1.8.20.tar
  • configure:mkdir build cd build ../configure --prefix=/usr/local
  • make
    ... 等待 ....
  • make install or sudo make install
  • curl

    因為編譯netcdf需要用到curl的源碼,我喜歡從源碼安裝。如果后面make netcdf的時候出現錯誤,可以嘗試將從apt-get安裝的curl卸載掉:sudo apt-get autoremove curl

  • 下載
  • 解壓:tar -zxvf curl-7.61.1.tar.gz
  • config: mkdir build cd build ../configure --prefix=/usr/local
  • make: make
  • install: make install
  • 此時如果再不提示缺什么庫的話,應該會順利通過。如果缺什么庫,編譯過程中會提示缺什么,繼續安裝所缺庫即可

    安裝netCDF

  • 解壓: tar -zxvf netcdf-4.6.1.tar.gz
  • mkdir build mkdir bin
  • cd build
  • ../configure --prefix=/usr/local 或者其他的什么你想安裝到的目錄
  • make
    ... 等待 ...
  • make install
  • GDAL

  • 下載
  • 解壓:tar -zxvf gdal-2.3.2.tar.gz
  • config: cd gdal-2.3.2 ../configure --prefix=/usr/local 注意:直接在主目錄下面配置和make,不要創建build目錄,不然會出現沒有make目標的錯誤。
  • make: make
    此過程等待時間非常長....
  • install: make install
  • PCRE

  • 下載
  • 解壓:tar -zxvf pcre-8.42.tar.gz
  • config: mkdir build cd build ../configure --prefix=/usr/local
  • make: make
  • install: make install
  • 出現了幾個警告:libtool: warning: relinking 'libpcreposix.la', libtool: warning: relinking 'libpcrecpp.la'先不管

    BLAS

  • 下載
  • 解壓:tar -zxvf blas-3.8.0.tgz
  • 編譯生成libblas.so:gfortran -shared -O2 *.f -o libblas.so -fPIC
  • 添加環境變量到~/.zshrc: export LIBPATH=/mnt/d/Research/gmt/library/BLAS-3.8.0/libblas.so:$LIBPATH
  • LAPACK

  • 下載
  • 解壓:tar -zxvf lapack-3.8.0.tar.gz
  • 拷貝make.inc:cp make.inc.example make.inc
  • 添加 -fPIC到OPTS和NOOPT
  • OPTS = -O2 -frecursive fPIC DRVOPTS = $(OPTS) NOOPT = -O0 -frecursive fPIC
  • 修改lib名稱
  • BLASLIB = ../../librefblas.so LAPACKLIB = liblapack.so
  • 修改SRC/makefile
  • ../$(LAPACKLIB): $(ALLOBJ)$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)$(RANLIB) $@

    改為

    ../$(LAPACKLIB): $(ALLOBJ)$(LOADER) $(LOADOPTS) -shared -Wl,-soname,liblapack.so -o $@ $(ALLOBJ) ../librefblas.so
  • 修改BLAS/SRC/Makefile
  • $(BLASLIB): $(ALLOBJ)$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)$(RANLIB) $@

    改為

    $(BLASLIB): $(ALLOBJ)$(LOADER) $(LOADOPTS) -z muldefs -shared -Wl,-soname,librefblas.so -o $@ $(ALLOBJ)

    如果你沒有g77編譯器,請將第2步拷貝的make.inc文件中的兩個g77更換為你的fortran編譯器比如gfortran

  • make
  • make blaslib make lapacklib
  • 添加環境變量: export LIBPATH=/mnt/d/Research/gmt/library/BLAS-3.8.0/libblas.so:/mnt/d/Research/gmt/library/lapack-3.8.0/liblapack.so:$LIBPATH
  • 安裝OpenMP庫

    sudo apt-get install libomp-dev

    FFTW

  • 下載
  • 解壓:tar -zxvf fftw-3.3.8.tar.gz
  • 配置:make build , cd build, ../configure --prefix=/usr/local
  • make
  • make install
  • Ghostscript

    sudo apt-get update
    sudo apt-get install ghostscript

    配置數據

    下載

  • GSHHG
  • DCW-GMT
  • 設置路徑: 環境變量

  • GSHHG_PATH
  • DCW_PATH
  • 編譯gmt

    mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=RelWithDebInfo .. make -j

    保持與官方倉庫同步更新(針對二次開發者)

  • 查看目前的遠程倉庫地址:git remote -v
  • 添加官方倉庫:git remote add upstream https://github.com/GenericMappingTools/gmt.git
    其中upstream是官方倉庫,orgin是你fock之后存在你自己的github賬戶里的倉庫
  • 拉取官方倉庫更新:git fetch upstream
  • 切換到自己的分支,比如master:git checkout master
  • 與官方更新合并:git merge upstream/master
  • 修改遠程push倉庫地址:git remote set-url origin xxxx.git
  • 刪除遠程倉庫地址:git remote rm origin
  • 如果發現在終端不能直接用gmt命令,那是因為安裝了git的插件的原因。一般這個是由于on my zsh引起的,gmt這個詞被定義為了 alias g./home/zguo/.oh-my-zsh/plugins/git/git,定義的文件為:/home/zguo/.oh-my-zsh/plugins/git/git.plugin.zsh,找到這個文件打開之后把這一行注釋掉,然后重新source一下或者重新打開一下終端就好了。

    總結

    以上是生活随笔為你收集整理的从源码中编译安装gmt官方开发版(优先体验最新功能)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。