如果用 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. 万一你只是不够幸运的话, 嘿, 试试也是有趣的.