升级到Ubuntu 11.10后,我发现我的许多旧的和当前的开发都不能再编译了。我已将问题简化为一个简单的例子:
#include <X11/Xlib.h>
int main() {
Display* display = XOpenDisplay(":0.0");
XCloseDisplay(display);
return 0;
}
使用以下方式编译:
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'
有什么想法吗?我发现11.10中的某些链接器内容发生了变化:
https://wiki.ubuntu.com/NattyNarwhal/ToolchainTransition
但仍然没有解释这些问题。
答案 0 :(得分:20)