ODEのインストール時にグラフィック(X11)で問題が起きる場合は

ODE (Open Dynamics Engine) を Linux (ここでは Ubuntu) にインストールするときに,以下のようなエラーが出る場合の対処法.

x11.cpp:108: error: undefined reference to 'XOpenDisplay'
x11.cpp:123: error: undefined reference to 'XCreateColormap'
...


ODE をインストール (make) しているときに,以下のようなエラーが出ることがある.

x11.cpp:108: error: undefined reference to 'XOpenDisplay'
x11.cpp:123: error: undefined reference to 'XCreateColormap'
x11.cpp:143: error: undefined reference to 'XCreateWindow'
x11.cpp:155: error: undefined reference to 'XSetWMName'
x11.cpp:158: error: undefined reference to 'XInternAtom'
x11.cpp:159: error: undefined reference to 'XInternAtom'
x11.cpp:160: error: undefined reference to 'XSetWMProtocols'
x11.cpp:164: error: undefined reference to 'XMapWindow'
x11.cpp:165: error: undefined reference to 'XSync'
x11.cpp:370: error: undefined reference to 'XPending'
x11.cpp:371: error: undefined reference to 'XNextEvent'
x11.cpp:380: error: undefined reference to 'XSync'
x11.cpp:172: error: undefined reference to 'XDestroyWindow'
x11.cpp:173: error: undefined reference to 'XSync'
x11.cpp:174: error: undefined reference to 'XCloseDisplay'
x11.cpp:222: error: undefined reference to 'XLookupString'
x11.cpp:212: error: undefined reference to 'XQueryPointer'
x11.cpp:308: error: undefined reference to 'XGetImage'

これは,libX11.so がリンクされるように設定されていないことが原因で(なぜかは不明),リンカオプションに -lX11 を付けるように configure のオプションを設定すれば解決できる.
具体的には,X_EXTRA_LIBS に -lX11 を設定して configure を実行すればよい.

bash だと,以下を実行する:

X_EXTRA_LIBS=-lX11 ./configure --enable-double-precision

なお,--enable-double-precision などはお好みで.

ちなみに,OpenGL のインストール自体は libglut3, libglut3-dev (or freeglut3, freeglut3-dev) パッケージをいれておけばよいようだ.