【问题标题】:Finding glfw library file in xcode in OSX?在 OSX 的 xcode 中查找 glfw 库文件?
【发布时间】:2014-11-20 07:38:59
【问题描述】:

所以我正在尝试使用 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 上做任何编码的项目之一。如果我忘记了您需要帮助的任何信息,请告诉我,我会尽快将其发送给大家。

【问题讨论】:

    标签: c++ xcode opengl linker glfw


    【解决方案1】:

    首先,在 OS X 上使用 GLEW 是 100% 没有意义的(OpenGL 扩展在这个平台上都是在链接时静态处理的)。你应该在你的项目中添加一些代码来做一些事情:

    #ifndef __APPLE__
      // GLEW-specific code here
    #endif
    

    另外,.dylib 用于动态链接 - 在 OS X 上这样做没有多大意义。GLFW 不是以框架的形式分发的,您必须自己编译它。如果您愿意,您仍然可以使用 GLFW 的动态链接版本,但您最终不得不将库打包到您的 .app 包中。我建议你只使用静态版本并避免所有这些。

    您查看过the GLFW compilation instructions 的 OS X 部分吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-14
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多