已包含对应库仍出现x86_64架构未定义符号错误?
解决Undefined symbols for architecture x86_64(GLEW相关)的问题
你遇到的这个错误是链接阶段的问题,不是头文件没包含对——头文件只是告诉编译器这些函数的声明,但链接器需要找到GLEW库的实际二进制文件才能把这些符号绑定到你的程序里。下面是具体的解决步骤:
- 首先确认你已经正确安装了GLEW库:如果你是在macOS上,最简单的方式是用Homebrew安装,运行
brew install glew即可,它会自动适配x86_64架构。 - 根据你使用的构建工具,添加链接库的配置:
- Xcode:打开你的项目,进入
Build Phases->Link Binary With Libraries,点击+号,搜索并添加libGLEW.dylib或者libGLEW.a(动态库或静态库都可以),同时别忘了添加OpenGL.framework。 - Makefile:在编译链接的命令里,必须加上GLEW的链接参数和OpenGL框架。比如你的编译命令应该类似:
这里gcc -o Viewing Viewing-ff0c66.o -lGLEW -lglfw -framework OpenGL-lGLEW告诉链接器要链接GLEW库,-framework OpenGL是macOS特有的,用来链接系统的OpenGL框架。 - CMake:在你的
CMakeLists.txt里添加以下配置:# 查找GLEW库 find_package(GLEW REQUIRED) # 链接库到你的目标程序 target_link_libraries(你的项目名称 PRIVATE GLEW::GLEW glfw OpenGL::GL)
- Xcode:打开你的项目,进入
- 额外提醒:尽量不要同时使用GLUT和GLFW,这两个都是窗口管理库,混用可能会导致不必要的冲突,选其中一个就足够了。
内容的提问来源于stack exchange,提问作者MasterYork42
相关产品推荐
相关产品推荐

