yum install tcsh gmt gcc libX11-devel
Fedora 13 已內建 gcc、libX11。
chmod +x install_software./install_software錯誤:X11LIBPATH 為空,找不到 libX11.a
These are the default paths to X11 found in Makefile.config X11LIBPATH: /usr/share/doc/usr/lib64 X11INCPATH: /usr/share/doc/usr/lib64/usr/include/X11 Searching your system for X11 installation Found these paths to X11 libs and includes on your system X11LIBPATH: X11INCPATH: /usr/include/X11
whereis libX11 → 通常為 /usr/lib64/libX11.so 或 /usr/X11R6/lib/libX11.so。libX11.a 符號連結 (GAMIT 編譯期尋找靜態庫):ln -s /usr/lib64/libX11.so /usr/local/lib/libX11.aMakefile.config,僅保留與系統一致的路徑,其餘以 # 註解:X11LIBPATH: /usr/lib64 X11INCPATH: /usr/include/X11
./install_software,輸出應顯示路徑一致:Found these paths to X11 libs and includes on your system X11LIBPATH: /usr/lib64 X11INCPATH: /usr/include/X11
系統 stdio.h 已定義 getline,GAMIT 同名函數導致編譯錯誤。
修正: 編輯 GAMIT 原始碼中定義 getline 的檔案 (通常為 util/getline.c 或同名函數),將函數重命名為 getline1,並同步修改所有呼叫處。
重新編譯,應出現:
++++++++++++++++++ GLOBK installed ++++++++++++++++++
~/.tcshrc 或 ~/.cshrc)set path = ($path /opt/GAMIT10.35/gamit/bin /opt/GAMIT10.35/kf/bin) setenv HELP_DIR /opt/GAMIT10.35/help/ setenv INSTITUTE xxx # 3字元機構代碼
doy 2010 11 26 # 輸出日期、儒略日、GPS 週等資訊即代表安裝成功
/usr/local/lib/libX11.a 指向系統共享庫即可。Makefile.config 路徑必須與 install_software 自動偵測結果完全一致。getline 命名衝突 (重命名為 getline1)。source ~/.tcshrc 生效。