在Ubuntu 14.04中,/usr/bin/ld找不到-lGL。

12

我正在尝试构建在QT Creator中创建的项目,但每次尝试编译时都会遇到错误。这是我的编译器输出:

23:02:20: Running steps for project WallpaperAppQt...
23:02:20: Configuration unchanged, skipping qmake step.
23:02:20: Starting: "/usr/bin/make" 
g++ -m64 -o WallpaperAppQt main.o mainwindow.o moc_mainwindow.o   -L/usr/X11R6/lib64 -lQt5Widgets -L/usr/lib/x86_64-linux-gnu -lQt5Gui -lQt5Core -lGL -lpthread 
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
make: *** [WallpaperAppQt] Error 1
23:02:20: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project WallpaperAppQt (kit: Desktop)
When executing step 'Make'
23:02:20: Elapsed time: 00:00.
4个回答

15

您需要一个提供 libGL.so 符号链接的软件包(没有版本后缀)。在Ubuntu中,它在 libgl1-mesa-dev 软件包中。所以只需执行:

sudo apt install libgl1-mesa-dev

2
更好的写法:sudo apt-get update && sudo apt-get install libgl1-mesa-dev - Knud Larsen
libgl1-mesa-dev已经安装在我的系统上,但我仍然遇到了问题。 - DeviousKoala
运行 dpkg -L libgl1-mesa-dev 命令。它是否列出文件 /usr/lib/x86_64-linux-gnu/libGL.so(如果您使用的是32位系统,则为 /usr/lib/i386-linux-gnu/libGL.so)?该文件是否实际存在? - Wyzard
它列出了以下两个:/usr /usr/share /usr/share/bug /usr/share/bug/libgl1-mesa-dev /usr/share/bug/libgl1-mesa-dev/script /usr/share/bug/libgl1-mesa-dev/control /usr/share/doc /usr/share/doc/libgl1-mesa-dev /usr/share/doc/libgl1-mesa-dev/copyright /usr/share/doc/libgl1-mesa-dev/changelog.Debian.gz /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/mesa /usr/lib/x86_64-linux-gnu/pkgconfig /usr/lib/x86_64-linux-gnu/pkgconfig/gl.pc /usr/lib/x86_64-linux-gnu/mesa/libGL.so /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libglapi.so - DeviousKoala
2
在这里找到了解决方法(最后两个命令)http://techtidings.blogspot.com/2012/01/problem-with-libglso-on-64-bit-ubuntu.html - DeviousKoala

9

4
这个命令解决了我的问题:sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1.7.0 /usr/lib/x86_64-linux-gnu/libGL.so - raoof

1

我曾经遇到同样的问题。然后我在终端中使用了以下命令:

sudo apt install mesa-common-dev libglu1-mesa-dev"

应用程序运行完美无缺。


-1
很明显,ld在默认的库路径中没有找到lib GL,这些路径应该包括/lib* /usr/lib*。你应该安装GL库或者使用命令行参数-L告诉g++GL的安装位置(如果已经安装)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接