如何修复';符号查找错误';在我不真实的项目中? 我试图写一个在虚幻引擎C++中的演员,它从渲染目标获得纹理数据。

如何修复';符号查找错误';在我不真实的项目中? 我试图写一个在虚幻引擎C++中的演员,它从渲染目标获得纹理数据。,c++,unreal-engine4,C++,Unreal Engine4,我有一个演员班: #include "RenderActor.h" #include "Engine.h" #include <stdio.h> // Sets default values ARenderActor::ARenderActor() { // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it

我有一个演员班:

#include "RenderActor.h"
#include "Engine.h"
#include <stdio.h>

// Sets default values
ARenderActor::ARenderActor()
{
    // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    PrimaryActorTick.bCanEverTick = true;
    UE_LOG(LogTemp, Warning, TEXT("Init RenderActor\n"));
}

// Called when the game starts or when spawned
void ARenderActor::BeginPlay()
{
    Super::BeginPlay();
    UE_LOG(LogTemp, Warning, TEXT("BeginPlay RenderActor\n"));

    UTextureRenderTarget2D* target = GetTextureByName(TEXT("MyCanvas"));

}

// Called every frame
void ARenderActor::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}

UTextureRenderTarget2D* GetTextureByName(const TCHAR* name)
{
    return LoadObject<UTextureRenderTarget2D>(NULL, name, NULL, LOAD_None, NULL);
}

int ARenderActor::GetTextureData(UTextureRenderTarget2D* TextureRenderTarget ,void* out_ptr,int length)
{
    int sx=TextureRenderTarget->SizeX,sy=TextureRenderTarget->SizeY;
    TArray<FColor> SurfData;
    FRenderTarget *renderTarget = TextureRenderTarget->GameThread_GetRenderTargetResource();
    check((sx*sy*4)<=length);
    renderTarget->ReadPixels(SurfData);
    memcpy(out_ptr,reinterpret_cast<void*>(SurfData.GetData()),sx*sy*4);
    return sx*sy*4;
}
现在我可以在Ubuntu18.04上编译它了,但是出现了一个运行时错误:

/home/starrabb1t/UnrealEngine/Engine/Binaries/Linux/UE4Editor: symbol lookup error: /home/starrabb1t/Documents/Unreal Projects/MemRender/Binaries/Linux/libUE4Editor-MemRender-7856.so: undefined symbol: _ZN12ARenderActor16GetTextureByNameEPKDs

我有一个带有渲染器对象的场景。我还在content directory的根目录中创建了render target MyCanvas。

请仔细查看
GetTextureByName
函数的定义(实现)。。。它真的是
Arenderator
类的成员吗?但我不确定它是否与“符号查找错误”有关。稍后我会检查是否有人试图“加载”函数
Arenderator::GetTextureByName
。但由于您的模块没有无法找到符号的功能,因此符号查找失败并出现错误。您是对的,谢谢!
/home/starrabb1t/UnrealEngine/Engine/Binaries/Linux/UE4Editor: symbol lookup error: /home/starrabb1t/Documents/Unreal Projects/MemRender/Binaries/Linux/libUE4Editor-MemRender-7856.so: undefined symbol: _ZN12ARenderActor16GetTextureByNameEPKDs