GCC/usr/bin/ld:找不到-lGl EI尝试用LIGBL和FLIEGLUT3编译C++ OpenGL程序。我在努力: g++ main.cpp -w -lglut -lGl -o bin/app
或 其结果是:GCC/usr/bin/ld:找不到-lGl EI尝试用LIGBL和FLIEGLUT3编译C++ OpenGL程序。我在努力: g++ main.cpp -w -lglut -lGl -o bin/app,c++,ubuntu,opengl,gcc,linker,C++,Ubuntu,Opengl,Gcc,Linker,或 其结果是: /usr/bin/ld: cannot find -lGl collect2: error: ld returned 1 exit status Makefile:16: recipe for target 'all' failed make: *** [all] Error 1 我在: Ubuntu 16.04 LTS 通用条款: libGL.so /usr/lib/x86_64-linux-gnu$ find libGL.so libGL.so 我安装了: freegl
/usr/bin/ld: cannot find -lGl
collect2: error: ld returned 1 exit status
Makefile:16: recipe for target 'all' failed
make: *** [all] Error 1
我在:
Ubuntu 16.04 LTS
通用条款:
libGL.so
/usr/lib/x86_64-linux-gnu$ find libGL.so
libGL.so
我安装了:
freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev
我遗漏了什么吗?上次我成功编译是在ubuntu 14.04上
我在某个地方读到应该安装fglrx glx,但该软件包不可用
更新:
glxinfo
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.2.0
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.2.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 11.2.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
我的ldconfig.real似乎为空
g++main.cpp-w-lglut-lGl-o bin/app
此命令不正确:您希望链接到libGL
,而不是libGL
,因此该命令应为:g++main.cpp-w-lglut-lGL-o bin/app
UNIX文件名区分大小写
我肯定知道它的Gl,但我尝试了-lGL,它给出了相同的错误 你错了。它应该是
-lGL
,并且带有libGL。因此/usr/lib/x86_64-linux-gnu
中存在,您不可能得到相同的错误(可能从ld
得到不同的错误(这很重要),但从make
得到相同的错误(这不重要))
更新:
/usr/lib/x86_64-linux-gnu/libGL.so: broken symbolic link to /usr/lib/libGL.so.1.2 2
/usr/bin/ld:找不到-lGL
嗯。必须是/usr/lib/x86_64-linux-gnu/libGL。因此要么是悬挂符号链接,要么指向32位库,要么以其他方式损坏
更新2:
/usr/lib/x86_64-linux-gnu/libGL.so: broken symbolic link to /usr/lib/libGL.so.1.2 2
事实上,这是一个断开的符号链接。要解决此问题,请重新安装提供此功能的软件包:
sudo apt-get install --reinstall libgl1-mesa-dev
我也有同样的问题,我设法解决了它,我不知道以后它是否会成为一个问题,但现在它进展顺利
在/usr/lib/x86_64-linux-gnu
目录中,我检查了符号链接生成的文件,我发现在我的示例中没有libGL。因此
。在您的示例中,它甚至存在,您可以尝试删除它并再次创建符号链接
我所做的是用libGL.so.1.7.0创建符号链接(1.7.0可以根据您机器上的版本进行更改)
sudo ln-s libGL.so.1.7.0 libGL.so
我希望这个解决方案对某些人有效,为奇怪的英语感到抱歉。Linux文件系统区分大小写,Gl!=GL。我肯定知道它的GL,但我试过-lGL,它给出了相同的错误。不,它不是GL。您自己的帖子表明它名为libGL.so
,而且一直都是这样。@Nick尝试为gcc添加-L
,就像这样g++main.cpp-w-lglut-L/usr/lib/x86_64-linux-gnu-lGL-o bin/app
@Ivan谢谢:)尝试过,仍然是相同的错误/usr/bin/ld:找不到-lGL collect2:错误:ld返回了1个退出状态Makefile:16:目标'all'的配方失败make:**[all]错误1@Nick文件/usr/lib/x86_64-linux-gnu/libGL.so
和文件-L/usr/lib/x86_64-linux-gnu/libGL.so
的输出是什么。。。第一个:/usr/lib/x86_64-linux-gnu/libGL.so:指向/usr/lib/libGL.so.1.2的符号链接断开第二个:/usr/lib/x86_64-linux-gnu/libGL.so:无法打开`/usr/lib/x86_64-linux-gnu/libGL.so'(没有这样的文件或目录),我想你可能找到了我的problem@Nick“我想你可能发现了我的问题”——你对我有怀疑吗?答案更新。毫无疑问…:P只是想办法解决它
sudo apt-get install --reinstall libgl1-mesa-dev