我尝试使用Qt 5.7在Ubuntu 16.04 64bit上编译Qscintilla 2.9.2时收到以下错误消息:
-L/home/mwambi/Qt5.7.0/5.7/gcc_64/lib -lQt5PrintSupport -L/usr/lib64 -lQt5Widgets -lQt5Gui -lQt5Core -lpthread -lGL
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
Makefile:979: recipe for target 'libqscintilla2.so.12.0.1' failed
make: *** [libqscintilla2.so.12.0.1] Error 1
我不知道图书馆GL是什么以及在哪里找到它。我该如何解决这个问题?
答案 0 :(得分:2)
根据我的经验,这个故障排除程序足以解决编译过程中大约90%的缺失库问题:
" -l [名称]"意味着有一个" lib [name] .so"
在系统中搜索" lib [name]" (使用locate或find)。
如果在系统上找到它,请检查路径($ LB_LIBRARY_PATH和构建系统的-L标志)并验证架构是否匹配(x86 + 64与i686)。
执行存储库搜索" lib [name]" (使用apt,yum,synaptic,& c。)。
如果它丢失,请安装它。
输入" lib [name] .so"进入谷歌或专用的包搜索网站(如RPMFind或packages.ubuntu.com),看看出现了什么包名,然后在#2-3中搜索。
在这种情况下,libGL是OpenGL的一个实现。您可以安装Mesa或找到替代实现(我只使用过Qt和Mesa)。 Here's a list of packages that provide libGL;如果您已在系统上安装了其中一个,请尝试获取您已有的开发版本。