/ usr / bin / ld:找不到-lGL(Ubuntu 14.04)

时间:2015-10-31 03:09:09

标签: c++ linux qt ubuntu gcc

我正在尝试构建一个在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.

3 个答案:

答案 0 :(得分:10)

您需要一个提供libGL.so(无后缀)符号链接的包。在Ubuntu中,它位于libgl1-mesa-dev包中。所以就这样做:

sudo apt install libgl1-mesa-dev

答案 1 :(得分:6)

我可以按照此链接中的说明修复我的问题:

http://techtidings.blogspot.com/2012/01/problem-with-libglso-on-64-bit-ubuntu.html

(最后两个命令)

sudo rm /usr/lib/x86_64-linux-gnu/libGL.so 
sudo ln -s /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so 

答案 2 :(得分:0)

很明显,bool IsMouseHover(Control c, Control container) { Point p = Control.MousePosition; Point p1 = c.PointToClient(p); Point p2 = container.PointToClient(p); if (c.DisplayRectangle.Contains(p1) && container.DisplayRectangle.Contains(p2)) { return true; } return false; } 在默认库路径中找不到ld,应该包含lib GL。您应该安装库/lib* /usr/lib*或告诉GL安装了lib g++的地方,如果已经安装了cmd args -L,那么。{/ p>