在 OSX 中的 xcode 中查找 glfw 库文件
Finding glfw library file in xcode in OSX?
所以我正在尝试使用OpenGL和GLFW构建一个程序。我得到的唯一错误是:
Undefined symbols for architecture x86_64:
"_glewInit", referenced from:
_main in main.o
"_glfwCreateWindow", referenced from:
_main in main.o
"_glfwGetKey", referenced from:
_main in main.o
"_glfwInit", referenced from:
_main in main.o
"_glfwMakeContextCurrent", referenced from:
_main in main.o
"_glfwPollEvents", referenced from:
_main in main.o
"_glfwSetInputMode", referenced from:
_main in main.o
"_glfwSwapBuffers", referenced from:
_main in main.o
"_glfwTerminate", referenced from:
_main in main.o
"_glfwWindowHint", referenced from:
_main in main.o
"_glfwWindowShouldClose", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
所以很明显这是一个链接错误。经过一些研究,我想我发现了我的错误。似乎我需要添加GLFW库(libglfw.dylib)以及Cocoa和OpenGL库。我的问题是我在"链接二进制与库"部分下找不到libglfw.dylib - 或任何与此相关的glfw。我找到了OpenGL.framework和Cocoa.framework,但我找不到glfw。我尝试为 glfw 完成整个 cmake 过程(cmake> make> sudo make install),但它没有出现。然后我尝试使用 brew 安装,但也没有用。我不知道为什么找不到这个文件。有什么想法吗?这是我第一次用GLFW做任何事情,也是我第一个在OSX上进行任何编码的项目之一。如果我忘记了您需要帮助的任何信息,请告诉我,我会尽快将其发送给您。
首先,在OS X上使用GLEW是100%没有意义的(OpenGL扩展都是在这个平台上的链接时静态处理的)。您应该向项目添加一些代码,这些代码执行以下操作:
#ifndef __APPLE__
// GLEW-specific code here
#endif
此外,.dylib
用于动态链接 - 在OS X上这样做没有多大意义.GLFW不是以框架的形式分发的,您必须自己编译它。如果您愿意,您仍然可以使用 GLFW 的动态链接版本,但您最终不得不将库打包到.app
捆绑包中。我建议您只使用静态版本并避免所有这些。
您是否查看了 GLFW 编译说明中的 OS X 部分?
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 无法将 GLFW 库与 Ubuntu 18.04 上的头文件链接
- glfw 的基本设置会导致与 emscripten 生成的 js 文件中的事件侦听器有关的运行时错误
- 如何使用 GLFW 预编译的二进制文件编译 Visual Studio 2019 发布版本
- 如何在glfw中为OpenGL设置核心配置文件上下文?
- glew和glfw .dylib文件缺少Mac
- 在 OSX 中的 xcode 中查找 glfw 库文件
- 包含GLFW文件时出错
- 选择从Windows将文件拖放到GLFW应用程序中
- 如何构建 OpenGL + GLEW + GLFW 程序,以便在带有 exe 的文件夹中不需要 glfw3.dll?
- GLFW与GLES在简单的c++ Emscripten文件不会构建