问:/ usr / bin / ld:找不到-lGL

时间:2015-11-22 02:53:30

标签: linux ubuntu

加载程序给我这个错误。我正在运行Ubuntu 15.04。 当我这样做时:找到/ usr -type f -name" libGL *"

我明白了:

/usr/lib/nvidia-352/libGLESv1_CM.so.352.63
/usr/lib/nvidia-352/libGLESv2.so.352.63
/usr/lib/nvidia-352/libGL.so.352.63
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
/usr/lib32/nvidia-352/libGL.la
/usr/lib32/nvidia-352/libGLESv1_CM.so.352.63
/usr/lib32/nvidia-352/libGLESv2.so.352.63
/usr/lib32/nvidia-352/libGL.so.352.63

所以,如果我知道哪个是正确的,我可以通过-L"该文件" 我怎么知道哪一个是正确的?感谢

2 个答案:

答案 0 :(得分:0)

根据您是否要链接32位或64位可执行文件,需要/usr/lib32/nvidia-352/libGL.so.352.63或/usr/lib/nvidia-352/libGL.so.352.63。当链接器找不到-lGL时,它正在寻找libGL.a或libGL.so ..

此外,您只需要指定带-L的目录,例如-L/usr/lib/nvidia-352

最后,即使这样你可以链接,在运行时仍然找不到库,除非你在运行可执行文件之前设置LD_LIBRARY_PATH,或者你也添加了-Wl,-rpath,/usr/lib/nvidia-352。 link命令(后者将路径嵌入到可执行文件中)。

答案 1 :(得分:0)

  

/ usr / bin / ld:找不到-lGL

@ user85392,已安装的GL仅为运行时文件。对于编译和链接,需要开发文件:库和标题→→

$ sudo apt-get update && sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev