【发布时间】:2013-10-05 13:17:18
【问题描述】:
尝试在带有 netbeans 和 cygwin 4.8.1 的 64 位 Windows 8 上使用此 tutorial。
我收到很多这样的错误:/usr/include/w32api/GL/glu.h:68:79: error: expected ‘)’ before ‘*’ token.
关于这样的语句:void APIENTRY gluQuadricCallback(GLUquadric *qobj,GLenum which,void (CALLBACK *fn)());
错误消息上的指针指向 fn() 之前的 *。
编辑:包括 windef.h 会消除编译器错误消息。
我留下了一堆未定义的引用,例如:glfwInit
edit2:使用 André Fischer 的想法,我可以得到一个干净的编译(你需要为链接器添加目录和 -l 选项)。
我现在有一个:在搜索 -lopengl32 时跳过不兼容的 ../../../../../Windows/SysWOW64/opengl32.dll 和:对 `_imp 的未定义引用em>_vsnprintf'。所以看起来我有一个 32/64 位问题和一个未定义的外部。
必须有一种更明智的方法才能让 opengl 在 Windows 上运行。
【问题讨论】:
-
教程的哪一点?这行 glu.h 说了什么?
-
第一个教程(tutorial01_first_window)。该行说: void APIENTRY gluQuadricCallback(GLUquadric *qobj,GLenum which,void (CALLBACK *fn)());
-
我会怀疑
CALLBACK的预处理器定义。它通常在系统头文件中定义,以定义回调的默认调用约定,但如果定义不正确,就会发生这种事情。windef.h通常定义为__stdcall。 -
包括 windef.h 帮助。请参阅编辑。
-
所以,现在您错过了所需的库。并显示确切的错误消息(或某些部分,如果它们看起来都相似)。
标签: c++ opengl netbeans cygwin glu