gpt4 book ai didi

c++ - 尝试在 Mac 上编译 GLFW 时 GLFW 上的链接器错误

转载 作者:行者123 更新时间:2023-11-28 07:55:36 25 4
gpt4 key购买 nike

我正尝试在我的 mac 上使用 xcode 使用 glfw 2.7.5,但出现以下错误:

Undefined symbols for architecture i386:
"_glfwGetKey", referenced from:
Game::run() in Game.o
RedScene::update(float, bool) in main.o
"_glfwGetWindowParam", referenced from:
Game::run() in Game.o
"_glfwInit", referenced from:
Window::Window() in Window.o
"_glfwOpenWindow", referenced from:
createWindow(int, int, int, int, int, int, int, int) in Window.o
"_glfwOpenWindowHint", referenced from:
Window::Window() in Window.o
"_glfwPollEvents", referenced from:
Game::run() in Game.o
"_glfwSetKeyCallback", referenced from:
createWindow(int, int, int, int, int, int, int, int) in Window.o
"_glfwSetMouseButtonCallback", referenced from:
createWindow(int, int, int, int, int, int, int, int) in Window.o
"_glfwSetMousePosCallback", referenced from:
createWindow(int, int, int, int, int, int, int, int) in Window.o
"_glfwSetMouseWheelCallback", referenced from:
createWindow(int, int, int, int, int, int, int, int) in Window.o
"_glfwSetWindowTitle", referenced from:
Window::setCaption(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Window.o
"_glfwSwapBuffers", referenced from:
RedScene::update(float, bool) in main.o
"_glfwSwapInterval", referenced from:
createWindow(int, int, int, int, int, int, int, int) in Window.o
"_glfwTerminate", referenced from:
Window::~Window() in Window.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我读过这个Problems using GLFW and XCode : won't compile以及互联网上的其他几个链接,但我找不到解决方案。

我已经在我设置的链接器标志中设置了 Cocoa 框架、OpenGL 框架和 libglfw.a(我使用“sudo make cocoa-install”编译)-lgflw 并且我正在为 32 位 Intel 构建.起初我是为 64 位构建的,但我认为 GLFW 在 Mac 上还不支持它(我遇到了操纵杆文件错误),当我为 32 位编译时错误发生了变化,它找不到我需要的函数正在使用。知道我可以做些什么来解决这个问题吗?

最佳答案

您很可能已经为 64 位构建了 libglfw.a,因此当您尝试在 32 位应用程序中使用它时会遇到链接错误。您可以为 32 位重建 libglfw.a(或作为“胖”32 位和 64 位库),或者您可以将您的应用构建为 64 位。

请注意,在最新版本的 Mac OS X 和 Xcode 中,gcc 默认构建 64 位代码,因此您需要在命令行中指定 -m32 以获得 32 位代码。在实践中如何执行此操作取决于 libglfw.a 的 makefile - 很可能有一个 ARCH 或您可以在命令行上指定的其他符号以强制进行 32 位构建。

关于c++ - 尝试在 Mac 上编译 GLFW 时 GLFW 上的链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com