繁体   English   中英

我如何在glu.h中摆脱这些编译器错误?

[英]how do i get rid of these compiler errors in glu.h?

尝试在64位Windows 8上使用netbeans和cygwin 4.8.1使用本教程

我收到许多这样的错误:/usr/include/w32api/GL/glu.h:68:79:错误:预期')'在'*'标记之前。

像这样的语句:void APIENTRY gluQuadricCallback(GLUquadric * qobj,GLenum which,void(CALLBACK * fn)());

错误消息上的指针指向fn()之前的*。

编辑:包括windef.h摆脱编译器错误消息。

我留下了一堆未定义的引用,如:glfwInit

edit2:使用AndréFischer的想法,我可以得到一个干净的编译(你需要为链接器添加目录和-l选项)。

我现在有一个:跳过不兼容的../../../../../Windows/SysWOW64/opengl32.dll,当搜索-lopengl32和:未定义的引用`_ imp _vsnprintf'。 所以看起来我有一个32/64位的问题和一个未定义的外部。

必须有一个更健全的方式让opengl在Windows上工作。

我假设你的意思是教程1:打开一个窗口 ,并使用Netbeans的内置构建系统而不是CMake。

包含头文件的顺序很重要( )。 试试这样:

#include <windef.h> // According to comments above
#include <GL/glew.h> // Before any gl headers
#include <GL/gl.h>

//#include <GL/glext.h> // Linux headers
//#include <GL/wglext.h> // Windows headers - Not sure which ones cygwin needs. Just try it

#include <GL/glu.h> // Always after gl.h
#include <GL/glfw.h> // When all gl-headers have been included

使用子文件夹“GL”在项目目录中创建名为“include”的目录。

GLFW下载站点获取二进制文件(32位,MinGW)并将.dll / .so放入您的构建文件夹(或将它们提取到某处并将它们添加到搜索目录中)并将头文件添加到“include / GL”中。

此外,教程中的glfw代码稍微过时了; 它不再适用于glfw3。 您将不得不使用GLFW的转换指南更新它/尝试此版本 (我无法测试,因为我目前不在家)或使用glfw2。

最后,按照README.txt中的说明下载GLEW源并构建它。 将.dll / .so放入构建文件夹(或添加到搜索目录),将头文件放入“include / GL”。

将以下内容添加到Compiler-Flags:

-Iinclude/

最后将以下参数添加到链接器:

-L/lib -lglu32 -lopengl32 -lGL -lGLU -lglfw -lglew

您应该能够立即编译教程。

编辑:添加了构建GLEW,GLFW的说明,并完成了我的答案,包括从头开始构建所有内容。
Edit2:链接的glfw3版本的教程代码。
Edit3:添加了缺少的链接器选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM