中的链接器问题,我发现我的许多旧的和当前的开发不能再编译了。我已经减少了问题一个简单的例子:在升级到Ubuntu 11.10后,Ubuntu 11.10
g++ -lX11 test.cpp
或
g++ -c -o test.o test.cpp
g++ -lX11 -o test test.o
导致失败的情况发生:
/tmp/ccBAOpzy.o: In function `main':
test.cpp:(.text+0x11): undefined reference to `XOpenDisplay'
test.cpp:(.text+0x21): undefined reference to `XCloseDisplay'
#include <X11/Xlib.h>
int main() {
Display* display = XOpenDisplay(":0.0");
XCloseDisplay(display);
return 0;
}
使用它编译有任何想法吗?我发现,有些链接的东西,在11.10已经改变:
https://wiki.ubuntu.com/NattyNarwhal/ToolchainTransition
但仍然没有解释这些问题。
您应该在之前安装了X11开发包libx11-dev。 – boto
@boto我知道。实际上,问题出在参数顺序上。 Ubuntu 11.10发布了GCC 4.6.1,这显然引入了更严格的参数排序约束。 g ++ test.cpp -lX11正常工作。 – cyberguijarro
现在我们来看看如何让SCons解决这个问题... – cyberguijarro