我如何消除 glu.h 中的这些编译器错误?

2024-03-31

尝试使用这个tutorial http://www.opengl-tutorial.org/beginners-tutorials/在带有 netbeans 和 cygwin 4.8.1 的 64 位 Windows 8 上。

我收到很多这样的错误: /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_vsnprintf'。所以看起来我有 32/64 位问题和未定义的外部。

必须有一种更明智的方法让 opengl 在 Windows 上工作。


我假设你的意思是教程 1:打开窗口 http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/并使用 Netbeans 的内置构建系统而不是 CMake。

包含头文件的顺序很重要(source http://www.glfw.org/faq.html#215__can_i_use_glew_with_glfw)。试试这样:

#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

在项目目录中创建一个名为“include”的目录,并包含一个子文件夹“GL”。

从以下位置获取二进制文件(32 位,MinGW)GLFW 下载网站 http://www.glfw.org/download.html并将 .dll/.so 放入您的构建文件夹中(或将它们提取到某个位置并将它们添加到搜索目录中),并将头文件放入“include/GL”中。

另外,教程中的 glfw 代码有点过时了;它不再适用于 glfw3。 您必须使用 GLFW 来更新它转换指南 http://www.glfw.org/docs/3.0/moving.html/try 这个版本 http://pastebin.com/fG711uMv(我无法测试,因为我目前不在家)或使用 glfw2。

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

将以下内容添加到您的编译器标志中:

-Iinclude/

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

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

您现在应该能够编译本教程了。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何消除 glu.h 中的这些编译器错误? 的相关文章

随机推荐

  • C++ 向量累加

    我试图对向量使用累积函数 vector
  • 在有序数组中添加额外的数字

    在已经上升的有序数组中插入新数字的最佳方法是什么 new number 6 old array array 1 3 4 5 7 8 10 new array must be 1 3 4 5 6 7 8 10 为什么不直接添加它并再次排序呢
  • OpenCV 2.4.1 - 在 Python 中计算 SURF 描述符

    我正在尝试更新我的代码以使用cv2 SURF 相对于cv2 FeatureDetector create SURF and cv2 DescriptorExtractor create SURF 但是 在检测到关键点后 我无法获取描述符 正
  • Android SU 权限:如何使用它们?

    这里有一种情况 我正在使用 Java 开发一个 Android 应用程序 我对这些东西都很熟悉 但现在这是我第一次需要使用 SU 权限 我只需要替换 实际上是重命名 system app 目录中的文件 但看起来我无法以通常的方式执行它 Fi
  • 启动python解释器时显示的消息的含义

    我知道这肯定是基本信息或知识 但我想知道 并且找不到答案 执行后立即显示什么信息或含义是什么python命令并启动解释器 例如 在这种情况下这意味着什么 Win32 上的 Python 3 8 7 tags v3 8 7 6503f05 2
  • Curl 返回 http 状态代码以及响应

    我使用curl 获取http 标头来查找http 状态代码并返回响应 我使用命令获取 http 标头 curl I http localhost 为了获得响应 我使用命令 curl http localhost 一旦使用 I 标志 我就只得
  • JUnit - 初始化程序错误中的异常

    我正在尝试使用静态方法测试一个类 但在这一行中出现错误 FormReferenceDataPopulator target new FormReferenceDataPopulator 这是失败的痕迹 java lang Exception
  • 防止导航到同一片段

    我正在使用带有 BottomNavigationView 的 Android 导航 jetpack 库 我已经实现了 NavHost NavGraph 和我的片段 当我使用操作进行导航时 一切都按预期进行 我使用以下代码来设置一切 val
  • 如何在 Angular 4 中创建分页组件? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个 API 端点 例如 list students page 5 rows 10带分页参数page and size 我想创建一个 a
  • 匹配平衡括号的正则表达式

    我需要一个正则表达式来选择两个外括号之间的所有文本 Example START TEXT text here possible text text possible text more text END TXT Result text he
  • 如何构建一个在用作 constexpr(如断言)时行为不同的自定义宏?

    从 C 14 开始 断言宏可以在函数中使用 即使它们被定义为 constexpr 我知道这与它的计算结果为 true 有关 但我无法弄清楚实际的代码是什么样子 具体来说 如何构建一个宏 该宏在运行时评估的 constexpr 函数中运行时打
  • PL/SQL 逗号分隔列表;删除重复项并放入数组中

    我有一个以逗号分隔的列表作为 PL SQL 过程中的字符串 我需要 删除重复项 将列表放入数组中 我发现了多种方法可以做到其中之一 但不能同时做到两者 有什么帮助吗 有一个众所周知的 SQL 技巧可以将逗号分隔的列表转换为行 只需使用这个技
  • 限制 .map 循环中的项目

    我想问一下如何限制我的 map例如 仅循环到 5 个项目 因为当前当我访问 api 时 它返回 20 个项目 但我只想显示 5 个 我发现大多数情况只是循环整个对象数组 而不是将其限制为多个项目 注意 我无法控制 API 因为我只是使用 m
  • libtool:i686-pc-mingw32 共享中不允许未定义的符号

    我正在使用自动工具作为我的库的构建系统 最近库被移植到Windows 尽管我遇到了一个奇怪的错误 但库编译和链接成功 配置和make后只有静态库 除了警告之外 一切看起来都很好libtool libtool undefined symbol
  • 在 C# 中,有没有办法在运行时确定类的成员?

    假设我有一个名为 foo 的类 它有 3 个公共成员 foo1 foo2 和 foo3 现在假设我正在编写一个函数 它将 foo 类的实例作为参数 但是当我编写这个函数时 我不知道它有哪些公共成员 有没有办法让我在运行时确定它具有公共成员
  • React.js 通过 Router 传递参数,而不是在 URL 中

    您好 我想从一个页面移动到另一页面并传递参数search and type 如果 URL 中没有这些参数 我可以使用 React Router 来实现此目的吗 我正在看这个https github com rackt react route
  • 如何更改应用栏颤动上的文本和图标的颜色

    我在更改颤动应用栏上的文本和图标小部件的颜色时遇到问题 我已经在材料应用程序中尝试过主题 但它不起作用 这是在哪里工作 title Text Profile style TextStyle color Colors black 但我想将其应
  • 在窗口中的标题栏内/上方添加用户控件

    在 WPF 中 我想在窗口的标题栏中 上方添加一个 userControl 如下所示 红色部分是UserControl 绿色部分是标题栏 现在我希望能得到你的一些建议 需要扩展Window类或者只是自定义Window的样式 最好提供源码 您
  • MVC 2 AntiForgeryToken - 为什么对称加密 + IPrinciple?

    我们最近将解决方案更新为 MVC 2 这更新了AntiForgeryToken作品 不幸的是 这不再适合我们的 AJAX 框架 问题是 MVC 2 现在使用对称加密来编码有关用户的一些属性 包括用户的Name财产 来自IPrincipal
  • 我如何消除 glu.h 中的这些编译器错误?

    尝试使用这个tutorial http www opengl tutorial org beginners tutorials 在带有 netbeans 和 cygwin 4 8 1 的 64 位 Windows 8 上 我收到很多这样的错