首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复glad.c中对符号'dlclose@@GLIBC_2.2.5‘的未定义引用

如何修复glad.c中对符号'dlclose@@GLIBC_2.2.5‘的未定义引用
EN

Stack Overflow用户
提问于 2019-07-01 20:11:33
回答 1查看 31.3K关注 0票数 16

我正在学习https://learnopengl.com/的教程,我在使用cmake(请参见创建窗口)设置依赖关系时遇到了困难。

我的CMakeLists.txt是基于GLFW文件的。

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.14)
project(openglTuto)


include_directories(include)
add_executable(gltuto src/main.c src/glad.c)

find_package(glfw3 3.3 REQUIRED)
find_package(OpenGL REQUIRED)

target_link_libraries(gltuto glfw)
target_include_directories(gltuto PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(gltuto ${OPENGL_gl_LIBRARY})

CMake成功地构建了我的配置,但是忍者无法编译和打印错误。

1/1链接C可执行的gltuto 失败: gltuto:&& /usr/bin/cc CMakeFiles/gltuto.dir/src/main.c.o CMakeFiles/gltuto.dir/src/glad.c.o -o gltuto /usr/lib/libglfw.so.3.3 &: /usr/bin/ld: CMakeFiles/gltuto.dir/src/glad.c.o:对符号'dlclose@@GLIBC_2.2.5‘的未定义引用 /usr/bin/ld: /usr/lib/libdl.so.2:错误添加符号:命令行缺少DSO collect2:错误: ld返回1退出状态 忍者:构建停止:子命令失败。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-01 20:30:49

链接者抱怨没有找到dlclose。您可以使用libdl添加利布斯。另外,利用与的现代链接,而不是字符串

将CMakeLists.txt更改为:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.14)
project(openglTuto)


add_executable(gltuto src/main.c src/glad.c)

find_package(glfw3 3.3 REQUIRED)
find_package(OpenGL REQUIRED)

target_include_directories(gltuto PUBLIC
                           $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
                           $<INSTALL_INTERFACE:include>)
target_link_libraries(gltuto PUBLIC glfw OpenGL::GL ${CMAKE_DL_LIBS})

查找生成器表达式以了解BUILD_INTERFACEINSTALL_INTERFACE

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56841870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档