查看: 3070|回复: 8

FireEffect 出错

[复制链接]

该用户从未签到

发表于 2011-5-2 15:38:53 | 显示全部楼层 |阅读模式
我想用FireEffect 特效,但是只要加上 #include <osgParticle/FireEffect >
就出现下面的错误:
D:\osg\OSG2.9.9\include\osgParticle/Emitter(66) : error C2062: 意外的类型“double”
1>D:\osg\OSG2.9.9\include\osgParticle/Emitter(66) : error C2238: 意外的标记位于“;”之前
1>D:\osg\OSG2.9.9\include\osgParticle/RadialShooter(98) : error C2589: “常量”: “::”右边的非法标记
1>D:\osg\OSG2.9.9\include\osgParticle/RadialShooter(98) : error C2059: 语法错误 : “::”
1>D:\osg\OSG2.9.9\include\osgParticle/ModularEmitter(89) : error C2062: 意外的类型“double”
1>D:\osg\OSG2.9.9\include\osgParticle/ModularEmitter(89) : error C2238: 意外的标记位于“;”之前
1>D:\osg\OSG2.9.9\include\osgParticle/FluidProgram(44) : error C2589: “常量”: “::”右边的非法标记
1>D:\osg\OSG2.9.9\include\osgParticle/FluidProgram(44) : error C2059: 语法错误 : “::”
1>D:\osg\OSG2.9.9\include\osgParticle/FluidProgram(54) : error C2589: “常量”: “::”右边的非法标记
1>D:\osg\OSG2.9.9\include\osgParticle/FluidProgram(54) : error C2059: 语法错误 : “::”

请问是什么原因呢?谢谢大家~

该用户从未签到

发表于 2011-5-3 09:27:39 | 显示全部楼层
您是否用到了Qt库?Emitter类的函数emit与Qt的信号发射宏emit冲突,因此会出现编译错误。解决方法之一是设置Qt使用Q_EMIT替代emit,方法之二是更新OSG到最新的版本,这个版本中我已经把emit改名为emitParticles

该用户从未签到

 楼主| 发表于 2011-5-3 11:17:08 | 显示全部楼层
是的,我用到了Qt库,谢谢array,“使用Q_EMIT替代emit”我不会,我还是更新OSG吧

该用户从未签到

 楼主| 发表于 2011-5-4 15:13:05 | 显示全部楼层
本帖最后由 qqzj 于 2011-5-4 15:25 编辑

回复 2# array
我把osg更新到了新的2.9.9版本,emit的错误没有了,但是还是会出现下面的错误,是不是2.9.9的版本不行呢,那么请问用哪个版本的可以呢?您说用最新的版本,我现在不知道哪个版本是最新的,谢谢~

    D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/RandomRateCounter(57) : error C2589: “(”: “::”右边的非法标记
1>D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/RandomRateCounter(57) : error C2059: 语法错误 : “::”
1>D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/RadialShooter(98) : error C2589: “常量”: “::”右边的非法标记
1>D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/RadialShooter(98) : error C2059: 语法错误 : “::”
1>D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/FluidProgram(44) : error C2589: “常量”: “::”右边的非法标记
1>D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/FluidProgram(44) : error C2059: 语法错误 : “::”
1>D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/FluidProgram(54) : error C2589: “常量”: “::”右边的非法标记
1>D:\osg\osg\OpenSceneGraph\bin\include\osgParticle/FluidProgram(54) : error C2059: 语法错误 : “::”

该用户从未签到

发表于 2011-5-5 08:28:14 | 显示全部楼层
2.9.9没问题,我不知道您自己的程序是怎么写的,或许您自己把程序版本搞乱了而已

该用户从未签到

 楼主| 发表于 2011-5-5 09:22:43 | 显示全部楼层
回复 5# array

我想用FireEffect,现在用到它的代码一句都还没写,就在头文件加上  #include <osgParticle/FireEffect > ,就出现了这样的错误

该用户从未签到

发表于 2011-5-6 08:37:10 | 显示全部楼层
我从未见过这个问题,我相信是您自己的OSG依赖路径写乱了

该用户从未签到

 楼主| 发表于 2011-5-6 10:15:56 | 显示全部楼层
知道是怎么回事了,RadialShooter里用的PI和我自己程序里define的PI重复了,把我程序里的PI改个符号就可以了,关于RandomRateCounter的错误是它类里的std::min似乎也和那个类里的重复了,改成min就可以了,谢谢array的关注!

该用户从未签到

发表于 2011-5-6 17:01:09 | 显示全部楼层
回复 8# qqzj


    我也在找火焰的程序,给我发个吧。。。谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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