Ubuntu 11.10にアップグレードした後、私の古い開発や現在の開発の多くはもうコンパイルできないことがわかりました。私は簡単な例に、問題を軽減しました:使用してそれをコンパイル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
しかし、まだ、これらの問題を説明していません。上記のコマンド
X11 devパッケージlibx11-devをインストールする必要があります。 – boto
@boto私はそれを知っています。実際には、問題はパラメータの順序にありました。 Ubuntu 11.10にはGCC 4.6.1が含まれています。これは、より厳密なパラメータの順序制約を導入するようです。 g ++のtest.cpp -lX11は正常に動作します。 – cyberguijarro
ここでSConsを回避する方法を見てみましょう... – cyberguijarro