编译GLEW/SDL程序时出错
Getting errors when compiling GLEW/SDL program
我有这样的代码:
#include <iostream>
#include <glew.h>
#include <SDL.h>
#pragma comment(lib, "glew32.lib")
#pragma comment(lib, "SDL2.lib")
using namespace std;
int main(){
return 0;
}
我得到了这些错误:
/usr/include/w32api/GL/glu.h:68:79: error: expected ‘)’ before ‘*’ token
void APIENTRY gluQuadricCallback(GLUquadric *qobj,GLenum which,void (CALLBACK *fn)());
^
/usr/include/w32api/GL/glu.h:68:79: error: expected ‘)’ before ‘*’ token
/usr/include/w32api/GL/glu.h:68:79: error: expected initializer before ‘*’ token
/usr/include/w32api/GL/glu.h:78:79: error: expected ‘)’ before ‘*’ token
void APIENTRY gluTessCallback(GLUtesselator *tess,GLenum which,void (CALLBACK *fn)());
...
出了什么问题?看起来glu.h属于一个MinGW包。我正在和Cygwin一起使用NetBeans。
我怀疑您的代码片段是否是实际编译的。错误消息提到GLU定义。它们在GL/glu.h
include中找到,该include在您的代码段中没有提及,也没有包含在glew.h
和SDL.h
中。
无论如何,该错误很可能是由于缺乏特定于Windows的APIENTRY
宏的定义(仅在Windows操作系统的构建中才会出现)。包含windows.h
或自己定义宏。
我建议在包含任何与OpenGL相关的内容之前使用它。
#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__)
|| defined(__TOS_WIN__) || defined(__WINDOWS__)
/* Compiling for Windows */
#ifndef __WINDOWS__
#define __WINDOWS__
#endif
# include <windows.h>
#endif/* Predefined Windows macros */
相关文章:
- 重载操作程序时出错>>用于类中的字符串 memebr
- 分段错误当我试图运行程序时出错
- 使用 Visual Studio 2019 构建 Hello World wxwidgets 应用程序时出错
- 在另一台 PC 上执行程序时加载 SDL2 共享库时出错
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- 从 ParaView 构建自定义 Qt 应用程序示例时出错
- 程序_free_dbg(块,_UNKNOWN_block)出错
- 在调试模式下,所有程序都运行良好,但在发布模式下,我在cudaMalloc操作中出错
- 在OpenGL中使用程序集代码渲染视频时出错
- 程序的 substr() 函数中的输出出错
- 编译特征程序时出错:错误:'seq'不是'Eigen'的成员
- 将 Dr. Memory 与 Visual Studio 项目配合使用时出错:缺少应用程序所需的库
- 在返回另一个函数的函数中执行程序期间出错
- 在 MacOSX 上编译 OpenGL 程序时出错('ld:找不到 -lopengl32 的库)
- 在比较特定输入中的程序的数组中出错
- 编译 libraw 程序时出错
- 尝试使用共享库部署QT应用程序时出错
- 编译 CPP 应用程序时出错。 "error: 'posix_memalign' was not declared in this scope"
- 第二次构建C++程序时出错
- 使用CUDA编译OpenCV示例程序时出错