我正在尝试编译其中一种 X11 + OpenGL 组合,但我对编译器不满意。特别是,我得到:
undefined symbol: glXMakeCurrent
我试过了
-lX11 -lGLU -lGL -lXext
作为链接器的参数,以及它们的一些排列,到目前为止还没有运气。
我正在运行 Ubuntu 12.04,并且我已经安装了所有与我有一个模糊想法的 opengl 相关的开发包。我也在用 C++ 开发,如果没有准备好 opengl 头文件,这可能会导致问题......但他们是对的吗?
我什至在 /usr/lib/x86_64-linux-gnu/ 中使用 fgrep 显式查找符号,但它不存在,此外,“nm”表示没有符号。
那么,与 glx 链接的正确方法是什么?
编辑:这是链接问题,当 python 尝试加载已编译(并且链接不正确)的模块时会产生错误。不是在编译时。
编辑:这是编译日志
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/debug/objects/alve/layouter/flowing_data.os -c -std=c++0x -g -I/usr /include/python2.7 -fPIC -I/opt/cairo_new/include/cairo/ -I/opt/boost_1_48_0/include -DMIC_RT_SPEED_BACKS -Icsrc csrc/alve/layouter/flowing_data.cpp
g++ -o build/debug/objects/alve/layouter/liblayouter.so -L/opt/cairo_new/lib -L/opt/boost_1_48_0/lib -shared build/debug/objects/alve/layouter/flowing_data.os build/debug/objects/alve/layouter/show_network.os -Lbuild/debug/lib -Llibdeps
Install file: "build/debug/objects/alve/layouter/liblayouter.so" as "build/debug/lib/liblayouter.so"
g++ -o build/debug/objects/alve/layouter/liblayouter_mod.so -L/opt/cairo_new/lib -L/opt/boost_1_48_0/lib -shared build/debug/objects/alve/layouter/module.os Lbuild/debug/lib -Llibdeps -lboost_python build/debug/objects/alve/layouter/liblayouter.so -lcairo -lX11 -lGL -lGLU -lXext
scons: done building targets.
这是函数的调用方式:
glXMakeCurrent (dpy, win, ctx);