对于那些没有理解问题的人来说,请注意:我知道链接器错误是什么。我的问题不是一般的问题,链接器错误是什么,我的问题是,特定于Assimp遗漏了一些应该存在的东西!因此,请不要关闭这个问题作为“重复”,因为这是一个Assimp特定的问题,而不是一些随机的“我的东西不是链接”的问题!
我正在使用VisualStudio2019和提供的assimp.sln获取链接器错误来构建assimp (来自GIT的最新版本):
LNK2001 unresolved external symbol "public: __cdecl aiVector3t<float>::aiVector3t<float>(class aiVector3t<float> const &)" (??0?$aiVector3t@M@@QEAA@AEBV0@@Z) assimp F:\wxWidgets-3\demos\assimp\code\Importer.obj 1
LNK2001 unresolved external symbol "public: __cdecl aiColor4t<float>::aiColor4t<float>(class aiColor4t<float> const &)" (??0?$aiColor4t@M@@QEAA@AEBV0@@Z) assimp F:\wxWidgets-3\demos\assimp\code\X3DImporter_Rendering.obj 1
LNK2001 unresolved external symbol "public: __cdecl aiVector2t<float>::aiVector2t<float>(class aiVector2t<float> const &)" (??0?$aiVector2t@M@@QEAA@AEBV0@@Z) assimp F:\wxWidgets-3\demos\assimp\code\XmlSerializer.obj 1
LNK2019 unresolved external symbol "public: __cdecl aiVector3t<float>::aiVector3t<float>(class aiVector3t<float> const &)" (??0?$aiVector3t@M@@QEAA@AEBV0@@Z) referenced in function "public: struct aiFace * __cdecl std::vector<struct aiFace,class std::allocator<struct aiFace> >::_Emplace_reallocate<struct aiFace const &>(struct aiFace * const,struct aiFace const &)" (??$_Emplace_reallocate@AEBUaiFace@@@?$vector@UaiFace@@V?$allocator@UaiFace@@@std@@@std@@QEAAPEAUaiFace@@QEAU2@AEBU2@@Z) assimp F:\wxWidgets-3\demos\assimp\code\X3DGeoHelper.obj 1
LNK2019 unresolved external symbol "public: __cdecl aiVector2t<double>::aiVector2t<double>(class aiVector2t<double> const &)" (??0?$aiVector2t@N@@QEAA@AEBV0@@Z) referenced in function "private: void __cdecl std::deque<class aiVector2t<double>,class std::allocator<class aiVector2t<double> > >::_Emplace_back_internal<class aiVector2t<double> const &>(class aiVector2t<double> const &)" (??$_Emplace_back_internal@AEBV?$aiVector2t@N@@@?$deque@V?$aiVector2t@N@@V?$allocator@V?$aiVector2t@N@@@std@@@std@@AEAAXAEBV?$aiVector2t@N@@@Z) assimp F:\wxWidgets-3\demos\assimp\code\IFCOpenings.obj 1 VS在C++17模式下构建,并具有预处理选项。
%(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;ASSIMP_BUILD_DLL_EXPORT;ASSIMP_BUILD_NO_M3D_IMPORTER;ASSIMP_BUILD_NO_M3D_EXPORTER;WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;ASSIMP_BUILD_NO_EXPORT;ASSIMP_BUILD_NO_C4D_IMPORTER;ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1;RAPIDJSON_HAS_STDSTRING=1;RAPIDJSON_NOMEMBERITERATORCLASS;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;OPENDDLPARSER_BUILD;CMAKE_INTDIR="Release";assimp_EXPORTS链接过程中缺少的对象的相关标头/类是存在的,并且是在同一个项目中构建的(至少我可以看到,如果由于某种原因,链接器错误中抱怨的对象没有生成,我不确定在链接器中使用的所有模板内容)。
知道什么可能出了问题吗?如何解决链接器的问题?
发布于 2022-10-19 11:09:03
最近在assimp中的一些更改以及一些特定的Visual编译器版本似乎都有问题。
当切换回assimp的5.2.0版本时,代码将正确构建。因此,这显然是由一些较新的变化引起的。一份错误报告已提交给吉特卜。
https://stackoverflow.com/questions/74037248
复制相似问题