如果用 xmkmf 和/或 make 很成功沒有錯誤, 你可以著手於 next section. 然而, 在真實生活, 很少事情在第一次就正確的工作. 這就是當你的機智豐富時,要勇於嘗試.
Link error: -lX11:
No such file or directory, 甚至是在使用 xmkmf 後.
這可能意味著 Imake 檔案沒有適當地裝好.
檢查 Makefile 的第一部分有沒有像這樣的幾行:
LIB= -L/usr/X11/lib
INCLUDE= -I/usr/X11/include/X11
LIBS= -lX11 -lc -lm
-L 和 -I 切換器(switches)會通告編譯器和連結器分別去哪�奡M找 library 和 include 檔案.
在這例子, X11 libraries 應該是在 /usr/X11/lib 目錄,
而 X11 include 檔案 應該是在 /usr/X11/include/X11目錄.
如果這在你的機器上是不對的, 必須改變 Makefile 而且再試試
make.
make -DUseInstalled -I/usr/X386/lib/X11/config
R5 libs 是有 libX11.so.3.1.0, libXaw.so.3.1.0,
和 libXt.so.3.1.0. 一般你需要連結至, 像是
libX11.so.3 -> libX11.so.3.1.0.
大概軟體也需要這個形式連結 libX11.so -> libX11.so.3.1.0.
當然, 要將這"斷掉(missing)"的連結建好, 要以 root 身分使用這指令
ln -s libX11.so.3.1.0 libX11.so.
libc version 5.4.4 或更新. 以 root身分,
你需要複製一個或以上的函式庫(libraries)至合適的目錄,
刪去舊的函式庫(libraries),然後重設符號連結.
小心: 在這要格外注意, 因為如果你弄糟, 你可能會付出你的系統不能運作的代價.
你通常可以找到升級的函式庫(libraries)在
Sunsite.
No such file or directory 錯誤訊息. 在這情況,檢查檔案權限來確定檔案可執行
以及檢查檔案標頭是否含有使用 shell 或程式, 指明 script 所在地方.
舉例而言, script 開始如:
#!/usr/local/bin/perl
如果 Perl 實際裝在你的 /usr/bin 目錄,
而不是 /usr/local/bin 目錄, 那麼 script 無法執行.
有兩個方法來修改. script 檔案標頭改成 #!/usr/bin/perl,
或用符號連結至正確的目錄, ln -s
/usr/bin/perl /usr/local/bin/perl.
Motif 函式庫(libraries)才能建立.
而標準的 Linux 發行套件並沒有安裝 Motif libraries, 而且目前 Motif
還要額外 $100-$200 的花費 (雖然免費軟體
Lesstif 在某些場合也能夠用).
如果你需要 Motif 來建立某一套件, 但缺少 Motif libraries,
那麼也許可以取得 靜態連結的二元碼(statically linked binaries).
靜態連結在二元碼本身納入函式庫行程(library routines).
這造成二元碼檔案大了許多, 但是碼可在缺少該函式庫的系統上執行.
Makefile,
那像是與你所要設法建立的套件亳不相干. 這表示跑著錯誤的 configure,
其找到你的 path 上某處其他的 configure. 所以要下 configure 指令
應該要下成 ./configure 即目前目錄下的.
警告: 一個有 setuid 成 root 的程式可能提出對你的系統有安全上的風險. 這個程式可以 root 權力來跑而所以有某些破害的潛在性. 在設定 setuid bit 前, 確定你知道該程式在做什麼, 必要時看一下原始碼.
你可能希望檢查 Makefile 來確定有選用對你系統最佳編譯選項.
舉例來說, 設定 -O2 旗標來選最高層級的最佳化而
-fomit-frame-pointer 旗標來造最小二元碼
(雖然 debugging 會沒有打開). 除非你知道你在做什麼,
而且在任何情況下, 除非艱苦建立的工作已完成, 否則不要玩這些.
在我的經驗, 大概25%的應用程式建立"完全沒有困難".
另外大約50%能"被說服"的建立, 要付出努力的範圍從無聊到極為困難.
那仍然表示有某些套件無論如何都無法建立. 即使那樣, 那些
Intel ELF 和/或 a.out 二元碼, 也可能在
Sunsite,
TSX-11 archive 或其它地方找到.
也許, 軟體的創造者可以提供編譯好的二元碼給你的特別的機器使用.
注意的是如果你取得預先編譯好的二元碼, 你會需要檢查是否與你的系統相容:
這二元碼必須在你的 硬體上跑 (i.e., Intel x86). 這二元碼必須與你的核心(kernel)相容 (i.e., a.out 或 ELF). 你的函式庫(libraries)必須是最新的.如果全都失敗, 你可以在合適的 新聞群組尋求幫忙, 像是在 comp.os.linux.x 或 comp.os.linux.development. 萬一你只是不夠幸運的話, 嘿, 試試也是有趣的.