gpt4 book ai didi

opengl -/usr/bin/ld : cannot find -lGL (Nvidia, (L)Ubuntu 12.10)

转载 作者:行者123 更新时间:2023-12-04 05:17:36 25 4
gpt4 key购买 nike

我无法在我的 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
[...]

我在 Google 上搜索了如何将此路径添加到默认库搜索路径,因为我猜到了 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/ ,一切正常。但这似乎不是在默认路径中链接库的正确方法。

最佳答案

发行版通常不将图形驱动程序的 libGL 安装到系统库路径中,而是安装在 /usr/lib 中的一些附加目录中。以允许安装 libGL.so 的不同变体在同一个系统上。然后符号链接(symbolic link)到事件 libGL.so由一些集中配置系统创建,例如 alternatives由 Ubuntu 和 Debian 使用。这个配置步骤很可能失败了。
/usr/lib/nvidia-current不是标准库路径,因此找不到该库;这也应该意味着,OpenGL 程序不应该工作。也许 Ubuntu 的人用 LD_LIBRARY_PATH 做点什么。环境变量来规避这一点。

我个人建议您添加符号链接(symbolic link),因为您应该始终拥有 libGL.so在默认库路径中,最好是 /usr/lib或在 /usr/lib64 中的 32/64 位多库系统上和 /usr/lib32

/usr/lib/libGL.so.1 => /usr/lib/nvidia-current/libGL.so.1
/usr/lib32/libGL.so.1 => /usr/lib32/nvidia-current/libGL.so.1
/usr/lib/libGL.so => /usr/lib/nvidia-current/libGL.so
/usr/lib32/libGL.so => /usr/lib32/nvidia-current/libGL.so

您也可以使用 alternatives系统,增加了一个新的选择。

关于opengl -/usr/bin/ld : cannot find -lGL (Nvidia, (L)Ubuntu 12.10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14057737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com