【问题标题】:OpenGL 3.3/4.1 on Mac OSX 10.9 using GLFW libraryMac OSX 10.9 上使用 GLFW 库的 OpenGL 3.3/4.1
【发布时间】:2014-06-20 10:45:11
【问题描述】:

我正在尝试在我的 Mac OSX 10.9 上使用 OpenGL 3.3/4.1,因为它终于可用了。我一直在使用 SuperBible 5 书及其示例来学习 3.3。我刚刚发现,当我的顶点着色器开始拒绝编译时,它实际上只运行 OpenGL 2.1。我发现我需要使用这个 GLFW 库来为我做 OpenGL 窗口化。这个库将允许我使用 OSX 能够运行的 4.1 版本的 OpenGL。我的问题是有人有 Mac OSX 9 OpenGL 库 GLFW 版本 3.0.4 的静态版本,他们可以发给我吗?尝试从头开始构建库是一种真正的痛苦,因为它涉及安装 CMake,然后是库代码,然后试图让它们一起工作和编译。我真的只需要这个库,这样我就可以开始运行 OpenGL 3.3/4.1。

【问题讨论】:

  • 顺便说一句,如果我是你,我不会再称它为 Mac OSX 9。我看到这一点并立即想到“Mac OS Classic”,因为我的脑海中掉了“X”。该平台/版本的正式名称实际上是 Mac OS X 10.9
  • 嗨,亚当。好,谢谢。如果我说 OSX 9,那是我的错误!我以为每个人都会知道那是小牛队。
  • 是的,这有点令人困惑,因为在 OS X 之前,Apple 拥有普通的旧“Mac OS”。有一个 Mac OS 9,这是他们迁移到 OS X 之前的最后一个 Mac OS 版本。当 OS X 首次发布时,机器会附带它和 Mac OS 9 的副本(为了与旧软件兼容)。这被亲切地称为“Mac OS Classic”。所以对于资深的 OS X 用户来说,称它为 Mac OSX 9 会让人很困惑 ;)

标签: macos opengl glfw


【解决方案1】:

我建议通过 homebrew http://brew.sh/ 安装 glfw 优点是您可以随时通过brew uninstall glfw3 轻松卸载它!

您需要安装“Xcode 命令行工具”并安装 Xcode https://github.com/Homebrew/homebrew/wiki/Installation

xcode-select --install

安装 Homebrew 后,打开终端并运行

brew update

brew tap homebrew/versions

brew install glfw3 用于 glfw3 或

brew install glfw2 用于 glfw2

此外,如果您需要静态构建,请使用标志 --static

brew install --static glfw3

库和包含文件将在usr/local/libusr/local/include 提供

现在,如果您有一个依赖于 opengl 和 glfw 的程序,您可能希望像这样编译它: gcc program.c -o myapp -framework OpenGl -lglfw3(或-lglfw2)

如果glfw头文件还有问题,可以这样做:

gcc program.c -o myapp -framework OpenGl -I/usr/local/include -lglfw3

【讨论】:

  • 不适用于我的 brew!错误:glfw3 没有可用的公式 正在搜索公式...正在搜索水龙头... homebrew/versions/glfw3
  • 目前,brew install glfw 将安装 glfw-3.2.1。而它的极简用法可以是g++ main.cpp -lglfw.
  • @Pranjal @Hustlion 似乎不再正确——没有像 glfwglfw3 这样的公式
  • 我可以从 brew 安装包。只需要使用“glfw”作为编译器库链接,而不是“glfw3”。
【解决方案2】:

要从源代码构建 GLFW 库,只需几个步骤:

  1. 下载并提取 GLFW 源代码。

  2. 打开终端。

  3. cd 到解压后的目录。

  4. 输入cmake .,回车。

  5. 将为您创建一个Makefile

  6. 输入make,回车。

  7. 编译完成后,输入sudo make install

库将复制到/usr/local/lib/,头文件复制到/usr/local/include/

注意:您需要安装编译器套件来构建软件,这通常是 XCode 命令行工具包。为此,请从商店安装并启动 XCode,或从 developer site 下载工具。

【讨论】:

  • 嗨,亚当。非常感谢。我现在就试试这个。我很擅长编程非实时图形,但使用 OpenGL 还不是很好。
  • 嗨,亚当,非常感谢。你是上帝派来的。这就像一个魅力。在我可以“su root”并安装到 /user/local/libs 并包含目录之前,我确实必须在 Maveric 中启用 root 用户。否则,我没有权限安装到这个目录。蒂姆
  • 没问题!太好了,它的工作原理。请注意,您始终可以使用sudo <command> 代替su root 来运行具有root 权限的命令,例如sudo make install。 (不要忘记将此答案标记为已接受;-))
【解决方案3】:

如果您在使用链接器时遇到问题,请尝试这样编译:

g++ youSource.cpp -I/usr/local/include -L/usr/local/lib -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework CoreVideo

或者只是:

g++ youSource.cpp -I/usr/local/include `pkg-config --cflags glfw3`  `pkg-config --static --libs glfw3`

【讨论】:

  • 第一个命令对我有用。你介意解释它的后半部分吗? (-framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework CoreVideo)
猜你喜欢
  • 1970-01-01
  • 2014-03-31
  • 2014-02-26
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多