• [Unreal 게시판] texture 대입시, 'LNK2019 error' 오류 대처하기2015.02.25 PM 01:06

게시물 주소 FONT글자 작게하기 글자 키우기

Question>

unreal engine 4에서 build를 했는데, 'LNK2019' 오류가 발생합니다.
문제가 일어나는 부분은 아래 부분이고요.

UPROPERTY()
FPostProcessSettings m_pps;

m_pps.BloomDirtMask->TextureReference =
SkyAmbientPostProccessVolume->Settings.BloomDirtMask->TextureReference;

오류 내용은 아래와 같습니다.

error LNK2019: unresolved external symbol "__declspec(dllimport) public: class FTextureReference
& __cdecl FTextureReference::operator=(class FTextureReference const &)"
(__imp_??4FTextureReference@@QEAAAEAV0@AEBV0@@Z) referenced in function
"public: void __cdecl ABrickSkySphere::Update(float)" (?Update@ABrickSkySphere@@QEAAXM@Z)

위 오류를 어떻게 해결하는 게 좋을까요?

-------------------------------------------------------------

Answer>

compile에서는 문제가 없고, link에서 오류가 나는 걸로 봐서는,
GUID쪽에서 문제가 있다고, 생각하고요.


그런데, unreal engine의 framework 구조상 GUID를 engine 사용자가
제어하는 건 별로 본 적이 없어서리..^^;;;;;
굳이, 그렇게 할 필요가 있는 지는 의문이 듭니다.@_@;;;;;


단순하게 생각하면..^^;;;;;
AmbientCubemap은 'class UTextureCube'의 pointer로 정의되어 있고,
이는 'class UTexture'와 'class UObject'을 상속하고 있기 때문에
operator '='으로 대입해도 문제가 발생하지 않습니다.
따라서, 질문의 source는 아래와 같이 기술할 수 있습니다.


m_pps.BloomDirtMask = SkyAmbientPostProccessVolume->Settings.BloomDirtMask;


operator '=' 내부적으로 reference count의 가감이 이루어지기 때문에
객체의 파괴는 garbage collector가 알아서 처리하게 됩니다.^^


따라서, reference 관련 문제는 engine 내부에 맡기시고,
만드시려는 기능에 집중하시는 게 좋을 듯 싶네요.^^







Tag:
안기훈, Kee Hoon Ahn, 언리얼, Unreal, UDK, iPhone, iPad, app, 앱, iOS
댓글 : 0 개
친구글 비밀글 댓글 쓰기