[程式] 初次使用 GMT 的 C API:環境架構 on Mac

GMT ( GENERIC MAPPING TOOL) 是一套架構完整的工具,除了直接使用 Binary 以外,也提供 C 的 API 讓使用者自己開發程式。這篇將記述如何在 Mac 上安裝 GMT,並成功編譯第一個範例。

安裝 GMT

首先,雖然有已經編譯完成的安裝檔,不過實際使用時由於編譯路徑不同,系統似乎會找不到相關的函式庫與標頭檔,故建議自行編譯。在 Mac 上,有好用的套件管理工具 Homebrew 可以讓你方便的安裝 GMT ,他會自動安裝需要的相依套件,所以推薦大家使用。

安裝 Homebrew

如果電腦尚未安裝 Homebrew ,請先以以下指令安裝:

按下 Return 鍵繼續,待其安裝完成後,加入 Homebrew/Science 編譯的菜單,裡面有 GMT 的編譯菜單:

完成後,我們就可以來看最新的 GMT 版本資訊了:

上面我們就可以看到 GMT 最新的版本為 5.3.1 (本文撰寫時間:2017.1.4)

最後,來安裝 GMT 吧!

範例輸出如下:

安裝完以後的位置在:

範例則在:

編譯 GMT C 程式:

官方說明上提供的第一個範例如下:

將上面的檔案存為 example1.c ,另外,範例所需的原始資料如下,請存為 table_5.11

接下來就是編譯設定了,我們用 gcc 來編譯的話,需要設定 header 與 library 的旗標。

如果是裝已經編譯好的 app 的話,這邊的設定就會有問題,因為 gmt-config –cflags 與 gmt-config –libs 會連結到編譯時那台電腦的設定,因此會找不到相關的函式庫。

最後執行 compile.sh 啦!

完成後,可以跑編譯完成的檔案:

這時候會生成「junk.nc」,我們可以用

輸出為 postscript 檔,這樣就可以用預覽程式來檢視了!

完成!

 

後記:

編譯時,可能出現錯誤:

這時候將

GMT_Close_VirtualFile (API, 0, input);
GMT_Close_VirtualFile (API, 0, output);

改為

GMT_Close_VirtualFile (API, input);
GMT_Close_VirtualFile (API, output);

應該就可以過關了!


一則迴響

請多多指教!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料