如果用 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)会通告编译器和连结器分别去哪里寻找 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. 万一你只是不够幸运的话, 嘿, 试试也是有趣的.