加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c++ 使用GLFW3进行编译,链接器错误’未定义引用’

发布时间:2020-12-15 01:50:15 所属栏目:百科 来源:网络整理
导读:使用GLFW3有一个最小的例子: #include GLFW/glfw3.hint main(int argc,const char * argv[]) { glfwInit();} …导致大量的链接器错误:(小摘录) Undefined symbols for architecture x86_64: "_CFArrayAppendValue",referenced from: _addJoystickElement in
使用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框架.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读