Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Fedora 13 安裝 GAMIT 10.35 完整教學:X11 函式庫路徑修正與 getline 函數衝突解決

編輯:Linux 教學

前置需求

yum install tcsh gmt gcc libX11-devel

Fedora 13 已內建 gcc、libX11。

安裝流程與錯誤排除

  1. chmod +x install_software
  2. ./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

解決:修正 libX11.a 連結與 Makefile.config 路徑

  1. 確認系統實際 libX11 位置:
    whereis libX11 → 通常為 /usr/lib64/libX11.so 或 /usr/X11R6/lib/libX11.so。
  2. 建立 libX11.a 符號連結 (GAMIT 編譯期尋找靜態庫):
    ln -s /usr/lib64/libX11.so /usr/local/lib/libX11.a
  3. 編輯 Makefile.config,僅保留與系統一致的路徑,其餘以 # 註解:
X11LIBPATH: /usr/lib64
X11INCPATH: /usr/include/X11
  1. 再次執行 ./install_software,輸出應顯示路徑一致:
Found these paths to X11 libs and includes on your system
X11LIBPATH: /usr/lib64
X11INCPATH: /usr/include/X11

AMD CPU 額外錯誤:getline 函數名稱衝突

系統 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 週等資訊即代表安裝成功

關鍵點總結

  • X11 靜態庫連結是最常見阻礙,建立 /usr/local/lib/libX11.a 指向系統共享庫即可。
  • Makefile.config 路徑必須與 install_software 自動偵測結果完全一致。
  • AMD 平台需處理 getline 命名衝突 (重命名為 getline1)。
  • 環境變數設定完成後 source ~/.tcshrc 生效。
Copyright © Windows教程網 All Rights Reserved