在 visual studio 中构建 fbxsdk headers 时编译错误
Compile error when building fbxsdk headers in visual studios
我尝试使用 visual studio 构建 2015 和 2018 版本的 fbxsdk headers 但出现错误:
c:\program files\autodesk\fbx\fbx sdk18.0\include\fbxsdk\core\fbxproperty.h(1161): error C2903: 'GetPropertyValue': symbol is neither a class template nor a function template
错误发生在这段代码:
T EvaluateValue(const FbxTime& pTime=FBXSDK_TIME_INFINITE, bool pForceEval=false)
{
return GetAnimationEvaluator()-> template GetPropertyValue<T>(*this, pTime, pForceEval);
}
位于模板 class 内,headers 的 linux 版本相同但不会产生错误,我什至尝试了 mingw g++ 并且编译没有错误(但是不能 link 因为 dll 不是用 g++ 制作的)。
那段代码到底在做什么?创建模板并将其作为值返回?
我从函数中删除了模板关键字,它开始在 visual studio 中编译(并且 g++ 开始出错),这会改变结果吗?
这个错误会不会是因为我使用的是visual studio 2017而不是fbxsdk库推荐的2015?除此之外,我做了他们在这里推荐的所有事情:https://help.autodesk.com/view/FBX/2018/ENU/?guid=FBX_Developer_Help_getting_started_installing_and_configuring_configuring_the_fbx_sdk_for_wind_html
我从以下位置安装了库:http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=26416244
我刚遇到同样的错误。解决方案是在 Configuration Properties/C/C++/Language 中将 Conformance 模式切换为 NO。我不确定这是否会导致任何问题,但它现在已经完成了工作。
我尝试使用 visual studio 构建 2015 和 2018 版本的 fbxsdk headers 但出现错误:
c:\program files\autodesk\fbx\fbx sdk18.0\include\fbxsdk\core\fbxproperty.h(1161): error C2903: 'GetPropertyValue': symbol is neither a class template nor a function template
错误发生在这段代码:
T EvaluateValue(const FbxTime& pTime=FBXSDK_TIME_INFINITE, bool pForceEval=false)
{
return GetAnimationEvaluator()-> template GetPropertyValue<T>(*this, pTime, pForceEval);
}
位于模板 class 内,headers 的 linux 版本相同但不会产生错误,我什至尝试了 mingw g++ 并且编译没有错误(但是不能 link 因为 dll 不是用 g++ 制作的)。
那段代码到底在做什么?创建模板并将其作为值返回?
我从函数中删除了模板关键字,它开始在 visual studio 中编译(并且 g++ 开始出错),这会改变结果吗?
这个错误会不会是因为我使用的是visual studio 2017而不是fbxsdk库推荐的2015?除此之外,我做了他们在这里推荐的所有事情:https://help.autodesk.com/view/FBX/2018/ENU/?guid=FBX_Developer_Help_getting_started_installing_and_configuring_configuring_the_fbx_sdk_for_wind_html
我从以下位置安装了库:http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=26416244
我刚遇到同样的错误。解决方案是在 Configuration Properties/C/C++/Language 中将 Conformance 模式切换为 NO。我不确定这是否会导致任何问题,但它现在已经完成了工作。