언리얼 클래스 이름 앞에 PROJECTNAME_API 매크로는 무슨 기능일까?

원아담·2022년 8월 28일
0

공부.언리얼

목록 보기
3/3
post-thumbnail

업무를 하다가 A 모듈에서 작성한 기능을 B 모듈에서 사용할 일이 생겼다.

그러다 LINK 에러를 만났는데

LINK 에러는 cpp 파일들을 컴파일을 전부 하고 각각의 심볼들을 찾는 과정인 링킹과정에서 나오는 에러이다.

하지만 이번에 나온 상황은 매크로로 원인이 숨겨져 있어서 찾기어려웠는데 알고보니 언리얼 클래스 이름 앞에 매크로 문제였다.

클래스 앞에 붙은 ADVENCEDLOCOMOTIONSYSTEM_API 매크로는 해당 클래스의 기능들을 다른 모듈에서 볼 수 있게 해준다.

저게 없으면 다른 모듈에서 사용된 기능에 대한 심볼을 연결(링킹)할 수 없어서 LINK 에러가 나게 된다.

대충 조사한 결과 언리얼 클래스 헤더 파일에 .generated.h 파일에서 정의되는 매크로인듯하다.


  • 참고

https://forums.unrealengine.com/t/what-does-the-macro-projectname-api-do/364978/6

https://docs.microsoft.com/en-us/cpp/cpp/extern-cpp?redirectedfrom=MSDN&view=msvc-170

profile
게임 만드는 사람

0개의 댓글