在 OSX 中的 xcode 中查找 glfw 库文件

Finding glfw library file in xcode in OSX?

本文关键字:glfw 文件 查找 OSX 中的 xcode      更新时间:2023-10-16

所以我正在尝试使用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 部分?