Hello, I am unable to get the plugin working on the Linux version of Unreal Engine and was wondering if anyone else had any ideas/advice for me?
Following the instructions on the official website:
- I close the editor
- I create a plugins folder in my project and copied in the PointCloudPlugin folder
- I then reopen my project. When the project opens I am greeted by a pop up “Project file is out of date. would you like to update it?” and I click udpate
From this point I am able to view the PointCloudPlugin entry in the plugin list inside of the editor, however I am only able to view the “PointCloudPlugin Content” folder in the content browser. I have ensured that I have the “Show C++ Classes” viewing option enabled. I am also unable to create any variables defined in the plugin.
Digging into the PointCloudPlugin.uproject file I find that the plugins “SupportedTargetPlatforms” is win64, and that the two modules included in the plugin are whitelisted for win64. I then tried to remove the whitelisting of the modules (figured it was worth a try). and when I open the project once more a popup informs me that it PointCloudRuntime and PointCloudEditor need to be rebuilt. The following compile errors then appear:
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:280:22: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
SystemIdentifier = "Unreal Engine 4";
^
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:283:24: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
GeneratingSoftware = "Point Cloud Plugin";
^
In file included from /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudRuntime/Module.PointCloudRuntime.cpp:5:
In file included from /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Private/IO/PointCloudFileIO_LAS.cpp:3:
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:280:22: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
SystemIdentifier = "Unreal Engine 4";
^
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:283:24: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
GeneratingSoftware = "Point Cloud Plugin";
^
In file included from /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudRuntime/Module.PointCloudRuntime.cpp:14:
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Private/Rendering/PointCloudRendering.cpp:72:34: warning: declaration shadows a field of 'FPointCloudCollisionRendering' -Wshadow]
void Initialize(FVertexBuffer* VertexBuffer)
^
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Private/Rendering/PointCloudRendering.cpp:133:4: note: previous declaration is here
} VertexBuffer;
^
I am able to fix the errors that occur in PointCloudFileIO_LAS.h and can ignore the warning about PointCloudRendering.cpp. When I attempt to recompile I now reach these errors:
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::SelectPointsByFrustum(FConvexVolume const&, bool)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:204: undefined reference to `FPointCloudOctree::GetPointsInFrustum(TArray<FPointCloudPoint*, TSizedDefaultAllocator<32> >&, FConvexVolume const&, bool const&) const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:204: undefined reference to `FPointCloudOctree::GetPointsInFrustum(TArray<FPointCloudPoint*, TSizedDefaultAllocator<32> >&, FConvexVolume const&, bool const&) const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::DeselectPointsByFrustum(FConvexVolume const&)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:204: undefined reference to `FPointCloudOctree::GetPointsInFrustum(TArray<FPointCloudPoint*, TSizedDefaultAllocator<32> >&, FConvexVolume const&, bool const&) const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::DeletePoints()':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:436: undefined reference to `FPointCloudOctree::RemovePoints(TArray<FPointCloudPoint*, TSizedDefaultAllocator<32> >&)'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::HidePoints()':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:338: undefined reference to `FPointCloudOctree::MarkPointVisibilityDirty()'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::UnhideAll()':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:277: undefined reference to `FPointCloudOctree::UnhideAll()'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditorViewportClient::InputKey(FViewport*, int, FKey, EInputEvent, float, bool)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:338: undefined reference to `FPointCloudOctree::MarkPointVisibilityDirty()'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `UE4Function_Private::TFunctionRefCaller<FPointCloudEditor::BuildPointCloudStatistics()::$_0, FText ()>::Call(void*)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:170: undefined reference to `FPointCloudOctree::GetNumPoints() const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `UE4Function_Private::TFunctionRefCaller<FPointCloudEditor::BuildPointCloudStatistics()::$_1, FText ()>::Call(void*)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:173: undefined reference to `FPointCloudOctree::GetNumNodes() const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `UPointCloud::SetData(TArray<FPointCloudPoint*, TSizedDefaultAllocator<32> >&)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:457: undefined reference to `bool UPointCloud::SetData<FPointCloudPoint**>(FPointCloudPoint**, long long const&, TFunction<void (float)>)'
The official website says that the plugin has been tested on Linux by users so am I misunderstanding how to install the plugin? I am new to Unreal Engine so it is possible. Thanks in advance to anyone who can help me!
System info:
Linux Version: 16.04 *
UE4 Version: 4.23
PointCloudPlugin version: 0.7-4.23*