我无法在我的 C++/Qt5 项目中链接到 OpenGL。我使用以下命令链接:
g++ -m64 -Wl,[...] -o [...] [...].o \
-L/usr/X11R6/lib64 -L[...]/qt-5.0.0/5.0.0/gcc_64/lib \
-lQt5Widgets -lQt5Network -lQt5Gui -lQt5Core -lGL -lpthread
我希望[...]
他们没有隐瞒一些重要的事情。如果你认为他们是,请告诉我。
我收到以下错误:
/usr/bin/ld: cannot find -lGL
我在 Lubuntu 12.10 系统上并使用来自http://qt-project.org/downloads的 Qt5 。由于系统是新安装的,我做的第一件事是安装 Ubuntu 的nvidia-current
软件包,然后我重新启动。其中,我的系统上安装了以下库:
$ ll /usr/lib/nvidia-current/
[...]
lrwxrwxrwx 1 root root 10 Oct 6 04:58 libGL.so -> libGL.so.1
lrwxrwxrwx 1 root root 15 Oct 6 04:58 libGL.so.1 -> libGL.so.304.43
-rw-r--r-- 1 root root 1076560 Oct 6 04:58 libGL.so.304.43
[...]
我用谷歌搜索了如何将此路径添加到默认库搜索路径,因为我猜它g++
不会在子文件夹中查找,nvidia-current
而仅在/usr/lib
. 所以我ld.conf.d
在Ubuntu中添加了路径。ldconfig
我使用以下命令进行了更新和检查:
$ ldconfig -p | grep libGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-current/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so
libGL.so (libc6) => /usr/lib32/nvidia-current/libGL.so
所以一切看起来都很好!仍然(即使在重新启动后),仍然会出现上面的错误。我错过了什么吗?
编辑:
添加后-L/usr/lib/nvidia-current/
,一切正常。但这似乎不是在默认路径中链接库的正确方法。