Linker error undefined symbol: FLandscapeComponentSceneProxy

Hi there,
I’m working on the CARLA simulator and I want to add a new scene proxy, which subclasses FLandScapeComponentSceneProxy. I’ve made the following changes to the Header & CPP files.

Header:

#include "LandscapeRender.h"

class FTaggedLandscapeComponentSceneProxy : public FLandscapeComponentSceneProxy 
{
public:
  FTaggedLandscapeComponentSceneProxy(ULandscapeComponent * Component, UMaterialInstance * MaterialInstance);

  //virtual FPrimitiveViewRelevance GetViewRelevance(const FSceneView * View) const override;

private:
  UMaterialInstance * TaggedMaterialInstance;
};

CPP:

FTaggedLandscapeComponentSceneProxy::FTaggedLandscapeComponentSceneProxy(ULandscapeComponent * Component, UMaterialInstance* MaterialInstance)
  : FLandscapeComponentSceneProxy(Component)
{
  TaggedMaterialInstance = MaterialInstance;
}

FPrimitiveViewRelevance FTaggedLandscapeComponentSceneProxy::GetViewRelevance(const FSceneView * View) const
{
  FPrimitiveViewRelevance ViewRelevance = FLandscapeComponentSceneProxy::GetViewRelevance(View);

  ViewRelevance.bDrawRelevance = ViewRelevance.bDrawRelevance && !View->Family->EngineShowFlags.NotDrawTaggedComponents;
  ViewRelevance.bShadowRelevance = false;

  return ViewRelevance;
}

When I try to compile the project, the compilation fails at the linking stage with the following error:

[5/10] Link (lld) libUE4Editor-Carla.so
ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::FLandscapeComponentSceneProxy(ULandscapeComponent*)
>>> referenced by TaggedComponent.cpp:336 (/home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggedComponent.cpp:336)
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(UTaggedComponent::CreateSceneProxy())
>>> referenced by TaggedComponent.cpp:336 (/home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggedComponent.cpp:336)
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(UTaggedComponent::CreateSceneProxy(ULandscapeComponent*))
>>> referenced by TaggedComponent.cpp:336 (/home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggedComponent.cpp:336)
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(FTaggedLandscapeComponentSceneProxy::FTaggedLandscapeComponentSceneProxy(ULandscapeComponent*, UMaterialInstance*))

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::~FLandscapeComponentSceneProxy()
>>> referenced by TaggedComponent.h:98 (/home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggedComponent.h:98)
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(FTaggedLandscapeComponentSceneProxy::~FTaggedLandscapeComponentSceneProxy())
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::GetTypeHash() const
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::DrawStaticElements(FStaticPrimitiveDrawInterface*)
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::CollectOccluderElements(FOccluderElementsCollector&) const
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::GetDynamicMeshElements(TArray<FSceneView const*, TSizedDefaultAllocator<32> > const&, FSceneViewFamily const&, unsigned int, FMeshElementCollector&) const
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::GetViewRelevance(FSceneView const*) const
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::GetLightRelevance(FLightSceneProxy const*, bool&, bool&, bool&, bool&) const
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::HeightfieldHasPendingStreaming() const
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::GetHeightfieldRepresentation(UTexture2D*&, UTexture2D*&, UTexture2D*&, FHeightfieldComponentDescription&)
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::CreateRenderThreadResources()
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::DestroyRenderThreadResources()
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::OnTransformChanged()
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::OnLevelAddedToWorld()
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::CanBeOccluded() const
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::ApplyWorldOffset(FVector)
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)

ld.lld: error: undefined symbol: FLandscapeComponentSceneProxy::GetLCIs(TArray<FLightCacheInterface*, TInlineAllocator<8u, TSizedDefaultAllocator<32> > >&)
>>> referenced by Module.Carla.1_of_4.cpp
>>>               /home/carla/carla/Unreal/CarlaUE4/Plugins/Carla/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Carla/Module.Carla.1_of_4.cpp.o:(vtable for FTaggedLandscapeComponentSceneProxy)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:315: CarlaUE4Editor] Error 6
make[1]: Leaving directory '/home/carla/carla/Unreal/CarlaUE4'
make: *** [Util/BuildTools/Linux.mk:95: CarlaUE4Editor.debug] Error 2

So far, I’ve deleted all binaries and intermediate objects and recompiled everything. The result remains the same. Furthermore I’ve checked that Landscape Module is added as a (private) dependency to the Carla.Build.cs.

Can you give me suggestions on how to fix this error?