[英]Compiling with GLFW3, linker errors 'undefined reference'
使用GLFW3
有一个最小的例子:
#include <GLFW/glfw3.h>
int main(int argc, const char * argv[]) {
glfwInit();
}
...导致大量链接器错误:(小摘录)
Undefined symbols for architecture x86_64:
"_CFArrayAppendValue", referenced from:
_addJoystickElement in libglfw3.a(cocoa_joystick.m.o)
"_CFArrayApplyFunction", referenced from:
__glfwInitJoysticks in libglfw3.a(cocoa_joystick.m.o)
_addJoystickElement in libglfw3.a(cocoa_joystick.m.o)
"_CFArrayCreateMutable", referenced from:
__glfwInitJoysticks in libglfw3.a(cocoa_joystick.m.o)
...
"_objc_msgSend_fixup", referenced from:
l_objc_msgSend_fixup_count in libglfw3.a(cocoa_monitor.m.o)
l_objc_msgSend_fixup_objectAtIndex_ in libglfw3.a(cocoa_monitor.m.o)
l_objc_msgSend_fixup_objectForKey_ in libglfw3.a(cocoa_monitor.m.o)
l_objc_msgSend_fixup_alloc in libglfw3.a(cocoa_init.m.o)
l_objc_msgSend_fixup_release in libglfw3.a(cocoa_init.m.o)
l_objc_msgSend_fixup_alloc in libglfw3.a(nsgl_context.m.o)
l_objc_msgSend_fixup_release in libglfw3.a(nsgl_context.m.o)
...
OpenGL.framework
和libglfw3.a
都是链接的。
这是什么原因? 在像魅力一样工作之前编译glfw2
应用程序。
在Mac OS X中,glfw3使用Cocoa(NSGL)进行OpenGL上下文管理。 glfw2使用Carbon(CGL / AGL,取决于全屏或窗口模式)。
NSGL更强大,但它建立在Objective C框架(Cocoa)之上。 为了使您的软件能够与glfw3一起正常工作,您应该包含Cocoa框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.