OpenGL-glfw 链接错误DSO

初学OpenGL,在看learnopengl 看到配置glfw时,glfw链接错误
DSO missing from command line 代码如下

//test.cpp
#include <GL/gl.h>
#include <GL/glu.h>
#include <GLFW/glfw3.h>
#include <stdio.h>

int main(void)
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    printf("works");
    return 0;
}

按照教程上的编译命令

$ gcc test.cpp -lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi

/usr/bin/ld: //usr/local/lib/libglfw3.a(vulkan.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

OS: ubuntu16.04
glfw头文件及库均可搜索到
问题:
如何链接才能顺利编译链接?

阅读 5.7k
1 个回答

翻了好多网站,在SO找到了可以用的解决方案,链接

$ gcc test.cpp -lglfw3 -lGL -lm -ldl -lXinerama -lXrandr -lXi -lXcursor -lX11 -lXxf86vm -lpthread

具体是哪里出错了还没搞懂,知道的朋友可以回答一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏