GNOME 常见问题解答(FAQ)
上一页 Chapter 5. Help!!!!!!!! 下一页

特殊的编译问题

undefined reference to 'compress' 是什么意思?

一般来说,这意味着无法找到或是无法链接压缩库(libz)。解决这个问题首先确定压缩库已经正确安装,如果没有安装,就从OS的安装介质上找到它并安装之。

如果在你正确安装它之后还是出现这样的错误,那么就检查系统中是否有libz的其它拷贝无法,很多时候XFree86会在/usr/X11R6/lib中放置一个拷贝而导致问题。删除这些拷贝删除就可以解决无法链接的问题了,如果你无法确认问题之所在,安全的做法是把libz.so重命名为libz.so.renamed,如果因为这个操作而导致其它的问题,那么就把它命名回来。

什么是 AC_TRY_RUN,为什么我会得到这样的警告?

有时候,在运行 aclocal、autogen.sh 或 make 的时候会看到类似这样的警告:configure.in:171: warning: AC_TRY_RUN called without default to allow cross compiling。这个警告完全可以安全的忽略过去(除非你在进行交叉编译)。

详细的说,交叉编译器是一个在使用者平台上直接编译出另外一种平台上可执行代码的编译器。例如:有些人使用Linux/x86系统,但是他们用一个特殊版本的 GCC 编译出可以在SGI/MIPS系统上执行的二进制代码。这个版本的 GCC 就是一个交叉编译器。

AC_TRY_RUN 宏被调用以编译并运行一个代码段。它被用于测试一个独立的代码段是否能正常工作,然后依此修改配置文件。如果使用一个交叉编译器编译代码,则无法在本机上执行这段编译出来的代码。 AC_TRY_RUN 宏中也包括了一个参数以针对这种使用交叉编译器的情况,但是我们还没有测试过给这个参数赋值以正确交叉编译GNOME。由于这个值缺省并不给出,所以会出现警告。


上一页 主页面 下一页
Help!!!!!!!! Up Runtime Problems