mystic-agit 개발 블로그

error: undefined reference to 빌드 에러 발생 시 본문

Cocos2d-x

error: undefined reference to 빌드 에러 발생 시

mystic-agit 2023. 4. 12. 13:34

Android Studio에서 Cocos2d-x를 적용한 프로젝트를 빌드 중

error: undefined reference to 'vtable for

와 같은 에러를 확인하였다.

 

Android Studio에서

- Build > Clean Project

- Build > Refrech Linked C++ Projects

- 프로젝트에서 /build 폴더 수동 제거

해보았지만 에러가 여전한 상황..

 

상황이 발생한 원인은

.h와 .cpp 또는 .hpp와 .cpp 를 코드 추가하여 작업한 뒤로 발생하였다.

 

일단 아래와 같이 확인을 천천히 진행한다.

(1) Android.mk 및 CMakeList.txt 파일에 새로 구성한 .cpp 파일을 정상 참조하는지 확인

: 경로가 온전히 선언되어 있다면 pass

: 경로 설정 시 폴더 이름을 작성할때 " ../폴더 이름 " 또는 " ../폴더 이름/  " 둘 중 어느 형태로 작성되어있는지 꼼꼼히 확인한다.

  기존에 정리되어있는 형태를 따라 " / " 추가가 필요한지 여부를 체크한다.

 

(2) Android Studio 프로젝트 모듈 수준의 구성 이하에서 /.cxx 폴더 및 이하를 모두 삭제

: /.cxx 이하를 제거할 경우 헤더(.h, .hpp)와 소스코드(.cpp)를 통해 발생하였던 라이브러리 파일이 제거된다.
  이후 빌드를 다시 진행하면 헤더와 소스코드를 참조하여 심볼 확인 > 라이브러리를 재구성하게 되고

  방금 구성한 헤더와 소스코드에 문법적 오류만 없다면 "error: undefined reference to" 에러 발생하지 않고 정상 빌드된다.

  (Android Studio에서 c++ 플러그인 작업을 하는 경우 문법적 오류 발생 시 빌드 에러가 그닥 친절하지 않다.
   간혹 함수를 잘못된 파라메터 형태로 사용 시 함수 사용에 문제가 있다는 에러가 아닌 "함수 찾을 수 없음.. " 으로 빌드 에러 발생하여
   #include만 주구장창 뒤지는 경우가 발생하니 코드 작성 시 꼼꼼할 수 있도록 하자)

 

'Cocos2d-x' 카테고리의 다른 글

C++ 변수 타입 형 변환  (0) 2023.04.18
C++ 클래스명 중복 사용 시 runtime 중 크래시 이슈  (0) 2023.04.18
Comments