在ubuntu下編譯安裝gmt

Win10+Ubuntu+GMT

GMT安裝方法有好幾種:(1)從官方發(fā)布的二進制文件安裝盅粪;(2)在Mac, Linux系統(tǒng)下有自動安裝命令;(3)從源碼編譯安裝感挥。第三種方法有利于體驗最新版(開發(fā)版)的新功能盯腌,因為官方發(fā)布的穩(wěn)定版本往往會比開發(fā)版晚很多!方便進行同步更新圣蝎;有利于二次開發(fā),加入自己的功能或者做一定的修改衡瓶!本帖一步一步說明如何在Ubuntu系統(tǒng)下從源碼安裝GMT徘公,對于win 10用戶,需要開啟subsystem哮针!下面一步一步展示如何用命令操作关面,廢話不多說,直接上代碼十厢!

注意:如果你是Linux 0基礎(chǔ)等太,讀起來可能有點費勁

根據(jù)gmt官方說明首先安裝所需的庫

在線視頻講解

編譯工具

編譯工具包括gcc, g++, gfortran, make, cmake。首先在終端查看諸工具是否已經(jīng)安裝:比如gcc --version蛮放,如果沒有安裝或者不夠新缩抡,可使用自動安裝命令安裝之,比如: sudo apt-get install g++包颁。

但是CMake貌似不能用apt-get安裝缝其,下面給出從源碼安裝最新版cmake的方法

cmake

  1. 下載
  2. 解壓:tar -zxvf cmake-3.13.0-rc1.tar.gz
  3. 配置:make build, cd build, ../configure --prefix=/usr/local
  4. make
  5. make install

安裝GMT依賴庫

netcdf

github倉庫

netCDF依賴庫

m4

安裝 sudo apt-get install m4

HDF5

  1. 下載
  2. 解壓:tar xvf hdf5-1.8.20.tar
  3. configure:mkdir build cd build ../configure --prefix=/usr/local
  4. make
    ... 等待 ....
  5. make install or sudo make install

curl

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

  1. 下載
  2. 解壓:tar -zxvf curl-7.61.1.tar.gz
  3. config: mkdir build cd build ../configure --prefix=/usr/local
  4. make: make
  5. install: make install

此時如果再不提示缺什么庫的話榴都,應(yīng)該會順利通過待锈。如果缺什么庫,編譯過程中會提示缺什么嘴高,繼續(xù)安裝所缺庫即可

安裝netCDF

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

GDAL

  1. 下載
  2. 解壓:tar -zxvf gdal-2.3.2.tar.gz
  3. config: cd gdal-2.3.2 ../configure --prefix=/usr/local 注意:直接在主目錄下面配置和make竿音,不要創(chuàng)建build目錄和屎,不然會出現(xiàn)沒有make目標的錯誤。
  4. make: make
    此過程等待時間非常長....
  5. install: make install

PCRE

  1. 下載
  2. 解壓:tar -zxvf pcre-8.42.tar.gz
  3. config: mkdir build cd build ../configure --prefix=/usr/local
  4. make: make
  5. install: make install

出現(xiàn)了幾個警告:libtool: warning: relinking 'libpcreposix.la', libtool: warning: relinking 'libpcrecpp.la'先不管

BLAS

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

LAPACK

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

改為

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

改為

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

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

  1. make
make blaslib
make lapacklib
  1. 添加環(huán)境變量: 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

  1. 下載
  2. 解壓:tar -zxvf fftw-3.3.8.tar.gz
  3. 配置:make build, cd build, ../configure --prefix=/usr/local
  4. make
  5. make install

Ghostscript

sudo apt-get update
sudo apt-get install ghostscript

配置數(shù)據(jù)

下載

  1. GSHHG
  2. DCW-GMT

設(shè)置路徑: 環(huán)境變量

  1. GSHHG_PATH
  2. DCW_PATH

編譯gmt

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

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

主要的命令列舉如下

  • 查看目前的遠程倉庫地址: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

如果發(fā)現(xiàn)在終端不能直接用gmt命令宽气,每次在終端輸入gmt會出現(xiàn)這個錯誤:fatal: Not a git repository (or any of the parent directories): .git随常,那是因為安裝了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一下或者重新打開一下終端就好了枣察。
Mac系統(tǒng)下也是一樣的操作!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末燃逻,一起剝皮案震驚了整個濱河市序目,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伯襟,老刑警劉巖猿涨,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逗旁,居然都是意外死亡嘿辟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門片效,熙熙樓的掌柜王于貴愁眉苦臉地迎上來红伦,“玉大人,你說我怎么就攤上這事淀衣£级粒” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵膨桥,是天一觀的道長蛮浑。 經(jīng)常有香客問我,道長只嚣,這世上最難降的妖魔是什么沮稚? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮册舞,結(jié)果婚禮上蕴掏,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好盛杰,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布挽荡。 她就那樣靜靜地躺著,像睡著了一般即供。 火紅的嫁衣襯著肌膚如雪定拟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天逗嫡,我揣著相機與錄音青自,去河邊找鬼。 笑死祸穷,一個胖子當著我的面吹牛性穿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雷滚,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼需曾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了祈远?” 一聲冷哼從身側(cè)響起呆万,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎车份,沒想到半個月后谋减,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡扫沼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年出爹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缎除。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡严就,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出器罐,到底是詐尸還是另有隱情梢为,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布轰坊,位于F島的核電站铸董,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肴沫。R本人自食惡果不足惜粟害,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颤芬。 院中可真熱鬧我磁,春花似錦孽文、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沉衣。三九已至郁副,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豌习,已是汗流浹背存谎。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肥隆,地道東北人既荚。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像栋艳,于是被迫代替她去往敵國和親恰聘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容