我正在尝试在Eclipse C ++上设置OpenGL。我已经按照[1]的答案中描述的步骤进行了操作,但是,当我这样做时,它显示如下:
Building target: opengltest
Invoking: MacOS X C++ Linker
g++ -L/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib -L/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries -framework GLUT -framework OpenGL -framework Cocoa -arch i686 -o "opengltest" ./main.o -lgl -lglu -lglut
ld: library not found for -lglut
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [opengltest] Error 1
我还将include行更改为:
#include <GLUT/glut.h>
为什么会出现此错误?
答案 0 :(得分:1)
您遵循了针对Linux / BSD开发人员的教程。在MacOS X中,您既不使用X11服务器也不直接链接到OpenGL接口库。在MacOS中,您只需添加OpenGL框架(将-framework OpenGL
添加到编译器命令选项中)。我不是活跃的Eclipse用户,但我非常确定,它识别了MacOS X框架,您只需添加OpenGL框架即可。
GLUT不是OpenGL的一部分,它是一个独立的库,但它曾经是MacOS X OpenGL框架的一部分。最近它被转移到一个单独的框架中。
为了进一步增加速度颠簸,Apple决定,他们不会将OpenGL头文件放入规范的地方GL/…
,而是放入OpenGL/…
,这样你就不得不使用#ifdef
预处理程序语句
#ifdef __APPLE__
#include <OpenGL/gl.h>
#else
#include <GL/gl.h>
#endif