C++ 试图将库链接到使用OpenGL的文件,但链接器无法找到与GL相关的文件
这是我运行时的输出C++ 试图将库链接到使用OpenGL的文件,但链接器无法找到与GL相关的文件,c++,linux,opengl,C++,Linux,Opengl,这是我运行时的输出 $ g++ main.c -lGL /usr/bin/ld: cannot find -lGL collect2: error: ld returned 1 exit status 不过,我确实安装了GL,因为它附带了我从nvidia网站下载的图形卡驱动程序,即用于我的图形卡780ti的346.72 当我进行搜索时,即在此处查找总账是响应的一部分 ... /usr/include/GL /usr/include/GL/freeglut.h /usr/include/G
$ g++ main.c -lGL
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
不过,我确实安装了GL,因为它附带了我从nvidia网站下载的图形卡驱动程序,即用于我的图形卡780ti的346.72
当我进行搜索时,即在此处查找总账是响应的一部分
...
/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
来完成的。include文件夹只保存头文件,而不保存(静态/共享)库,这正是解决此错误所需的。请尝试设置到存放OpenGL库(可能是/usr/libs/GL)的文件夹的库路径。@hop joppe5请在您的问题中添加您正在使用的信息$g++main.c-L/usr/lib/x86_64-linux-gnu-lGL
。我已经删除了我的答案。我已经解决了这个问题,我删除了所有其他xorg和nvidia驱动程序,包括单独删除的nouveau,还有这个sudo apt get purge nvidia*我在安装后运行了nvidia xconfig,我从recovery shell位置进行了安装