OSG测试gl.h编译出错
在测试OSG程序时,
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main()
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
return viewer.run();
}
编译出错:C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1157): error C2144: 语法错误:“void”的前面应有“;”
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1157): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1158): error C2144: 语法错误:“void”的前面应有“;”
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1158): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1158): error C2086: “int WINGDIAPI”: 重定义
1> C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1157) : 参见“WINGDIAPI”的声明
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1159): error C2146: 语法错误: 缺少“;”(在标识符“GLboolean”的前面)
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1159): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1159): error C2086: “int WINGDIAPI”: 重定义
1> C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1157) : 参见“WINGDIAPI”的声明
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1160): error C2144: 语法错误:“void”的前面应有“;”
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1160): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1160): error C2086: “int WINGDIAPI”: 重定义
1> C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1157) : 参见“WINGDIAPI”的声明
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1161): error C2144: 语法错误:“void”的前面应有“;”
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1161): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\GL/gl.h(1161): error C2086: “int WINGDIAPI”: 重定义
。。。
解决办法:添加头文件 #include <Windows.h>即可!
参考链接: