proletariatgames / unreal.hx

Unreal.hx: Haxe Integration for Unreal
MIT License
424 stars 43 forks source link

Hxcpp later than 3.4.64 produces linker errors #115

Closed datee closed 5 years ago

datee commented 5 years ago

With hxcpp 3.4.64 it compiles with no errors but when i'm upgrading to hxcpp 3.4.185, 3.4.188 or 4.0.4 i get linker errors at the end of the compilation, are there support for those versions yet? [Win 10, Haxe 3.4.7, UE4.19]

Errors: haxeRuntime.lib(d419743c_BytesBuffer.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(9d57483c_Lib.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(6f10cfb9_Socket.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(b5538f47_Parser.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(8db8204d_ByteArray.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(d9091374_Socket.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(d419743c_BytesInput.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(2b50853f_ArrayBuiltin.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(6f10cfb9_File.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(d419743c_Bytes.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(d9091374_Host.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(d419743c_Path.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(e9dc867f_UnrealInit.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(cc62c02a_JsonParser.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(cc62c02a_JsonPrinter.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(2b50853f_Cppia.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(2b50853f_CppiaVars.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(e9dc867f_StringBuf.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(e9dc867f_StringTools.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(5370fa6a_CFFI.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(5370fa6a_StdLibs.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(614c7251_String.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(614c7251_Array.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_1 haxeRuntime.lib(5dd1509f_SmoothFloat.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(5370fa6a_Hash.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(e9dc867f_UnrealInit.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(2b50853f_ArrayBuiltin.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(84d218dc_EngineLatentCommands.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(39811e08_Immix.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(614c7251_Array.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(2b50853f_Cppia.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(2b50853f_CppiaVars.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_8 haxeRuntime.lib(6f10cfb9_Socket.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(cc62c02a_JsonPrinter.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(2b50853f_ArrayBuiltin.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(5dd1509f_StringUtils.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(015bb16f_Utf8.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(2b50853f_CppiaVars.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(5370fa6a_Hash.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(e9dc867f_StringTools.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(cddedeb5_TMap_Impl_.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(614c7251_String.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(614c7251_Array.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(9a51aeaf_ClassWrap.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(2b50853f_Cppia.obj) : error LNK2001: unresolved external symbol __std_reverse_trivially_swappable_4 haxeRuntime.lib(614c7251_Array.obj) : error LNK2019: unresolved external symbol __std_reverse_trivially_swappable_2 referenced in function "void __cdecl std::_Reverse_unchecked1<unsigned short *>(unsigned short * const,unsigned short * const,struct std::integral_constant<unsigned __int64,2>)" (??$_Reverse_unchecked1@PEAG@std@@YAXQEAG0U?$integral_constant@_K$01@0@@Z)

datee commented 5 years ago

Anybody else having this issue?

thejustinwalsh commented 5 years ago

Windows 10 Unreal 4.19.2

λ haxelib list
hxcpp: [4.0.4]
hxcs: [3.4.0]

Same linker errors with my setup.

thejustinwalsh commented 5 years ago

OK, fixed it...

So I have both VS 2015 and 2017 installed side by side. So I switched to hxcpp 4.0.4 then in my Unreal Project Config added a Config/DefaultEditorSettings.ini and change my PreferredAccessor to VisualStudio2017

DefaultEditorSettings.ini

[/Script/SourceCodeAccess.SourceCodeAccessSettings]
PreferredAccessor=VisualStudio2017

Now when I Right Click my Project and Generate Project Files it creates VS2017 project files and everything compiles and links.

datee commented 5 years ago

Great! Will check it out to see if this is the issue - also have VS 2015 + 2017 installed on my system

datee commented 5 years ago

Ok. VS 2017, hxcpp 4.0.4 and unreal.hx for UE 4.21 seems to work just fine now. Thanks for the help!