查看: 2098|回复: 0

osg3.0.1 vs2010 编译问题

[复制链接]

该用户从未签到

发表于 2014-2-28 16:39:10 | 显示全部楼层 |阅读模式
osg3.0.1 vs2010 编译以后出现以下的错误:
4>  AlphaFunc.cpp
4>D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale(323): warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1153): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1153): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1153): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1154): error C2146: 语法错误: 缺少“;”(在标识符“GLboolean”的前面)
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1154): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1154): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1155): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1155): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1155): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1156): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1156): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1156): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1157): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1157): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1157): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1158): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1158): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1158): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1159): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1159): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1159): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1160): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1160): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1160): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1161): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1161): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1161): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1162): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1162): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1162): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1163): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1163): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1163): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1164): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1164): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1164): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1165): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1165): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1165): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1166): error C2144: 语法错误:“void”的前面应有“;”
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1166): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1166): error C2086: “int WINGDIAPI”: 重定义
4>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1152) : 参见“WINGDIAPI”的声明
4>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\GL/gl.h(1167): error C2144: 语法错误:“void”的前面应有“;”

在OpenSceneGraph-3.0.1\include\osg\GL 文件下加上了 #include <Windows.h>头文件,又出现以下问题

2>d:\lib\openscenegraph\openscenegraph-3.0.1\src\osg\Matrix_implementation.cpp(70): warning C4003: “min”宏的实参不足
2>d:\lib\openscenegraph\openscenegraph-3.0.1\src\osg\Matrix_implementation.cpp(70): error C2589: “(”:“::”右边的非法标记
2>d:\lib\openscenegraph\openscenegraph-3.0.1\src\osg\Matrix_implementation.cpp(70): error C2059: 语法错误:“::”
2>d:\lib\openscenegraph\openscenegraph-3.0.1\src\osg\Matrix_implementation.cpp(71): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
2>d:\lib\openscenegraph\openscenegraph-3.0.1\src\osg\Matrix_implementation.cpp(76): error C2181: 没有匹配 if 的非法 else

应该是min()宏冲突了,改如何解决这个问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表