UE5 third party plugin.

Hello all!

I have been trying to add Fast-DDS (GitHub - eProsima/Fast-DDS: The most complete DDS - Proven: Plenty of success cases.) as a third party plugin to UE5 for some time now. I used the third party plugin template and replaced the custom library with Fast-DDS. Now I still get an error message that I can’t get rid of. I hope someone can help me.

Module.FastDDS.cpp.obj : error LNK2019: unresolved external symbol ""void __cdecl std::_Xbad_alloc(void)" (?_Xbad_alloc@std@@YAXXZ)" in function ""protected: void __cdecl std::time_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::_Getvals<wchar_t>(wchar_t,class std::_Locinfo const &)" (??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z)".
Module.FastDDS.cpp.obj : error LNK2019: unresolved external symbol ""void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPEBD@Z)" in function ""void __cdecl std::_Xlen_string(void)" (?_Xlen_string@std@@YAXXZ)".
Module.FastDDS.cpp.obj : error LNK2001: Unresolved external symbol "_Mbrtowc".
Module.FastDDS.cpp.obj : error LNK2019: unresolved external symbol  ""__declspec(dllimport) public: struct _Cvtvec __cdecl std::_Locinfo::_Getcvt(void)const " (__imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ)" in function ""protected: void __cdecl std::time_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::_Getvals<wchar_t>(wchar_t,class std::_Locinfo const &)" (??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z)".
Module.FastDDS.cpp.obj : error LNK2019: unresolved external symbol ""__declspec(dllimport) public: unsigned short const * __cdecl std::_Locinfo::_W_Getdays(void)const " (__imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ)" in function ""protected: void __cdecl std::time_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::_Getvals<wchar_t>(wchar_t,class std::_Locinfo const &)" (??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z)".
Module.FastDDS.cpp.obj : error LNK2019: unresolved external symbol ""__declspec(dllimport) public: unsigned short const * __cdecl std::_Locinfo::_W_Getmonths(void)const " (__imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ)" in function ""protected: void __cdecl std::time_get<char,class std::istreambuf_iterator<char,struct std::char_traits<char> > >::_Getvals<wchar_t>(wchar_t,class std::_Locinfo const &)" (??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z)".
D:\Unreal\Projekte\TestFastDds\Plugins\FastDDS\Binaries\Win64\UnrealEditor-FastDDS.patch_0.exe : fatal error LNK1120: 6 unresolved externals
Failed to link patch (0.000s) (Exit code: 0x460)
---------- Finished (0.000s) ----------

I’m adding Boost as a third party module to UE5 and have similar errors. Did you find a way to get rid of it?

I’m encountering the same issue.
CAN SOMEONE PLEASE HELP!!!

I can only say what worked for me to get past this specific error but i’ve run into other issues down the line and unsure if it’s caused by this or something else so take this with a bucket of salt.

Initially, i tired to make it use static libs and only using the .lib files but had no luck. it was only when i copied the “fastcdr-1.0.dll”, “fastrtps-2.10.dll” and “foonathan_memory-0.7.3.dll” into the binaries folder of the project.
In my build file i then added the dlls as runtime dependancies (RuntimeDependencies.Add(yourBinaryPathHere.dll)

Currently getting memory access violations when trying to set up the publisher with create_publisher() function. My code works fine in a standalone project, not so much when within UE.