试图将库链接到使用OpenGL的文件,而链接器无法找到GL相关文件

Trying to link library to a file which uses OpenGL and linker not being able to find GL relevant file

本文关键字:文件 链接 GL OpenGL      更新时间:2023-10-16

所以这是我运行

时的输出
$ g++ main.c -lGL 
 /usr/bin/ld: cannot find -lGL
 collect2: error: ld returned 1 exit status

但是我确实安装了GL,因为它是我从nvidia网站上下载的显卡驱动程序,即346.72,用于我的显卡780ti

当我做一个搜索,即定位GL这里是响应的一部分

...
/usr/include/GL
/usr/include/GL/freeglut.h
/usr/include/GL/freeglut_ext.h
/usr/include/GL/freeglut_std.h
/usr/include/GL/gl.h
/usr/include/GL/gl_mangle.h
/usr/include/GL/glcorearb.h
/usr/include/GL/glew.h
/usr/include/GL/glext.h
/usr/include/GL/glu.h
/usr/include/GL/glu_mangle.h
/usr/include/GL/glut.h
/usr/include/GL/glx.h
/usr/include/GL/glx_mangle.h
/usr/include/GL/glxew.h
/usr/include/GL/glxext.h
/usr/include/GL/glxint.h
/usr/include/GL/glxmd.h
/usr/include/GL/glxproto.h
/usr/include/GL/glxtokens.h
/usr/include/GL/internal
/usr/include/GL/wglew.h
/usr/include/GL/internal/dri_interface.h
/usr/include/GL/internal/glcore.h
...
/usr/lib/x86_64-linux-gnu/libEGL.so
/usr/lib/x86_64-linux-gnu/libEGL.so.1
/usr/lib/x86_64-linux-gnu/libEGL.so.346.72
/usr/lib/x86_64-linux-gnu/libGL.la
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so.346.72
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.346.72
/usr/lib/x86_64-linux-gnu/libGLESv2.so
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/libGLESv2.so.346.72
/usr/lib/x86_64-linux-gnu/libGLEW.so
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLU.a
/usr/lib/x86_64-linux-gnu/libGLU.so
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
/usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5.2
/usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5.2.1
/usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
/usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4.8
/usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4.8.6
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
....

表明它确实存在

我如何将它与链接器链接?

规范的方法是将包含特定于体系结构平台的库(如/usr/lib/x86_64-linux-gnu/)的目录添加到系统链接器路径中。为此,将其添加到/etc/ld.so.conf并重新构建链接器缓存。

使用超级用户权限执行ldconfig来重建链接器缓存。