加载程序给我这个错误。我正在运行 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"thatfile"包含它 我怎么知道哪个是正确的?谢谢
最佳答案
根据您是要链接 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
也添加到链接命令(后者会将路径嵌入到可执行文件中)。
关于linux - Q :/usr/bin/ld: cannot find -lGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851124/