簡體   English   中英

使用GLFW3進行編譯,鏈接器錯誤'未定義引用'

[英]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.frameworklibglfw3.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM