在 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。我不确定这是否会导致任何问题,但它现在已经完成了工作。