i have gotten my c++ plugin with custom blueprint to compile, but now it fails at the linker stage with the errors below.
the errors complain that i have multiple definitions of my helper functions which i have in my header, i’m using #pragma once
so i’m confused why the linker sees multiple definitions.
/bin/sh -c '/bin/sh "/home/raptor/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/FixDependencies.sh" && echo "Dummy" >> "/home/raptor/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/UE4Editor.link"'
Performing 4 actions (4 in parallel)
[1/4] Compile MyPlugin.generated.cpp
[2/4] Compile Module.MyPlugin.cpp
[3/4] Link libUE4Editor-MyPlugin.so
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `__xpath__R(std::__1::shared_ptr<__object__>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<__object__>, std::__1::shared_ptr<std::__1::set<std::__1::shared_ptr<__object__>, std::__1::less<std::__1::shared_ptr<__object__> >, std::__1::allocator<std::__1::shared_ptr<__object__> > > >)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:290: multiple definition of `__xpath__R(std::__1::shared_ptr<__object__>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<__object__>, std::__1::shared_ptr<std::__1::set<std::__1::shared_ptr<__object__>, std::__1::less<std::__1::shared_ptr<__object__> >, std::__1::allocator<std::__1::shared_ptr<__object__> > > >)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:290: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `__xpath__r(std::__1::shared_ptr<__object__>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:310: multiple definition of `__xpath__r(std::__1::shared_ptr<__object__>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:310: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `__new_object__(double, int)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:256: multiple definition of `__new_object__(double, int)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:256: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `shared_ptr':
/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4313: multiple definition of `__new_question__(std::__1::shared_ptr<__object__>)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4313: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `__split_string__(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:32: multiple definition of `__split_string__(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:32: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `std::__1::shared_ptr<__object__>::operator->() const':
/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4051: multiple definition of `len(std::__1::shared_ptr<__object__>)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4051: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `std::__1::shared_ptr<std::__1::map<std::__1::weak_ptr<__object__>, double, std::__1::owner_less<std::__1::weak_ptr<__object__> >, std::__1::allocator<std::__1::pair<std::__1::weak_ptr<__object__> const, double> > > >::operator->() const':
/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4051: multiple definition of `len(std::__1::shared_ptr<std::__1::map<std::__1::weak_ptr<__object__>, double, std::__1::owner_less<std::__1::weak_ptr<__object__> >, std::__1::allocator<std::__1::pair<std::__1::weak_ptr<__object__> const, double> > > >)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4051: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__get_short_size() const':
/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/string:1777: multiple definition of `len(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/string:1777: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `str(std::__1::pair<std::__1::weak_ptr<__object__>, double>)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:262: multiple definition of `str(std::__1::pair<std::__1::weak_ptr<__object__>, double>)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:262: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `str(double)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:269: multiple definition of `str(double)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:269: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `str(unsigned long)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:270: multiple definition of `str(unsigned long)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:270: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `std::__1::shared_ptr<__object__>::operator->() const':
/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4051: multiple definition of `__int__(std::__1::shared_ptr<__object__>)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/memory:4051: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `__int__(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:283: multiple definition of `__int__(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:283: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `__int__(double)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:282: multiple definition of `__int__(double)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:282: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `__xpath__(std::__1::shared_ptr<__object__>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)':
/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:285: multiple definition of `__xpath__(std::__1::shared_ptr<__object__>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/../../../Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Source/MyPlugin/Public/IMyPlugin.h:285: first defined here
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/MyPlugin.generated.cpp.o: In function `unsigned long std::__1::__str_find<char, unsigned long, std::__1::char_traits<char>, 18446744073709551615ul>(char const*, unsigned long, char const*, unsigned long, unsigned long)':
/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/string:980: multiple definition of `__spawned_threads__'
/home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/MyPlugin/Module.MyPlugin.cpp.o:/home/raptor/UnrealEngine/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1/string:978: first defined here
clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: UBT ERROR: Failed to produce item: /home/raptor/Documents/Unreal Projects/MyProject/Plugins/MyPlugin/Binaries/Linux/libUE4Editor-MyPlugin.so
Total build time: 57.69 seconds