OS 10.10 上 GLFW 的链接器错误

Linker error with GLFW on OS 10.10

我正在尝试编译以下内容

#include <GLFW/glfw3.h>

int main()
{
    glfwInit();
    return 0;
}

只是为了验证我的 GLFW 安装是否正常工作。我使用带有

的终端
clang++ -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo -I/opt/local/include/ test.c

但我收到 glfwInit 函数的链接器错误:

Undefined symbols for architecture x86_64:
  "_glfwInit", referenced from:
      _main in test-d8c21e.o
ld: symbol(s) not found for architecture x86_64

我已经使用 sudo port install glfw 安装了 glfw 并遵循了我找到的所有可能的教程。我可以验证 libglfw.dylib 文件是否可以在 /opt/local/lib/ 找到(我认为)应该如此。

有什么建议吗?

您还需要 link 使用 GLFW[3],例如,添加: -L/opt/local/lib -lglfw3

如果您安装了 pkgconfig 端口,您还可以利用它:

clang `pkg-config glfw3 --cflags` test.c -o test \
`pkg-config glfw3 --static --libs`

如果你有:libglfw3.dylib,而不是使用:libglfw3.a,你可能不需要 --static 标志,但它没有坏处。

如果您正在使用 Xcode,则必须在 linking 二进制文件时添加 libglfw3.a 库。

这是诀窍

  1. 显示隐藏文件夹。将其粘贴到终端中:defaults write com.apple.finder AppleShowAllFiles YES
  2. 重新启动 finder window 并导航到 Macintosh HD\usr
  3. 将usr文件夹拖到终端"Favorites"一侧
  4. 在 xcode 中,单击向 link 二进制文件添加“+”,然后单击 "Add Other"
  5. 导航到 libglfw3.a 并添加它!

如果还是不行,这里有一些对我有帮助的说明。

https://engineering-game-dev.com/2013/08/14/glfw-compiling-source-and-creating-an-xcode-project/comment-page-1/#comment-1400