Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 试图将库链接到使用OpenGL的文件,但链接器无法找到与GL相关的文件_C++_Linux_Opengl - Fatal编程技术网

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位置进行了安装