본문 바로가기
개발/Cocos2d-x

[Cocos2d-x] 이클립스에서 JAVA / C++ 혼합 프로젝트 설정하기 #2

by 가리봉맨 2012. 10. 23.
반응형

  지난 포스트에서는 이클립스에  C++ 소스 파일 및 플러그인을 추가하고 통합 빌드하는 하는 부분을 다뤘다. 이어서 C++ 소스 파일에 표시되는 경고를 사라지게 함으로써 이클립스에서 C++ 파일을 편집할 수 있도록 해보겠다. 


  jni/helloworld/main.cpp 파일을 열어보면 아래 사진과 같이 경고가 표시되는 것을 볼 수 있다. 이것은 C++ include 파일들의 경로를 제대로 설정해 주지 않아서 나타나는 현상이다. 



  Package Explorer에서 프로젝트를 선택한 뒤 마우스 오른쪽 버튼을 누르고 Properties를 선택한 뒤, C/C++ General -> Path and Symbols -> GNU C++ 를 선택한다. 그리고 아래 두 개의 경로를 추가해 준다.


 $(NDKROOT)/platforms/android-9/arch-arm/usr/include 

 $(COCOS2DX_HOME)/cocos2dx/include


  여기서 $(NDKROOT)와 $(COCOS2DX_HOME)는 각자 실제 디렉토리의 절대 경로로 바꿔줘야 한다. 여기까지 하면 아래와 같이 상당 부분 경고 표시가 사라진다.



  이제 게임 소스에 해당하는 디렉토리 (/Classes)의 경로를 추가해 줘야 한다. 역시 Properties 창을 열고, C/C++ General -> Path and Symbols -> Soruce Location 을 선택한다. 그리고 Link Floder.. 버튼을 누른 다. 그 다음에 Link to folder in the file system 을 체크해 주고 Browse 버튼을 눌러서 프로젝트 홈 디렉토리 아래에 있는 /Classes 디렉토리를 선택해 준다.


  여기까지 하면 대부분의 경고 표시가 없어진다. 그래도 남아있는 부분은 C++ Code Analysis 설정을 수정해서 제거하도록 한다. 아래 그림과 같이 Properties -> C/C++ General -> Code Analysis 에서 Syntax and Sematic Errors 항목의 체크를 없애준다.



  C++ 소스 상의 경고 메시지들이 모두 사라진 것을 확인할 수 있다. 이제 이클립스에서도 C++ 소스 파일들을 자유롭게 편집하고 빌드할 수 있게 됐다. 끝.



참고사이트:

http://cocos2d-x.org/

http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started

반응형

댓글6

  • HRLee 2012.11.21 16:21

    안녕하세요. 잘보고 배워갑니다.
    그런데 Error 처리를 "Syntax and Sematic Errors 항목의 체크를 없애준다." 라는 방법으로 하셨는데 이렇게 하면 빌드와는 별도로 include가 정상적으로 된건가요?
    그 예로 Content-assistance를 이용할 수 있나요? 구조체나 Class의 Method 접근을 Eclipse에서 지원이 되는지요?
    빌드까지는 잘되는데 eclipse에서 cpp로 코딩이 힘드네요 ^^;
    답글

    • Favicon of https://bongman.tistory.com BlogIcon 가리봉맨 2012.11.26 18:47 신고

      미흡한 글인데 잘 보셨다니 감사합니다^^

      해당 에러는 실제로는 에러가 아닌데 이클립스의 Code Analysis가 Error로 잘못 인식하는 것입니다. 당연히 헤더 파일 include나 소스 파일 경로 설정 등은 정상적으로 해주셔야 합니다. Syntax and Sematic Errors 항목의 체크를 해제함으로써 잘못 표시되는 Error를 없애준 것입니다. 이클립스의 Code Analysis가 아직 좀 시원찮타고 하네요.

      참고로 Syntax and Semantic Errors 이하 항목을 모두 해제할 필요는 없습니다. ~cannot be resolved 가 들어간 항목들만 해제해 줘도 별 문제가 없을 겁니다. 아래 링크의 이미지를 참고해 주세요.
      http://cdn4.raywenderlich.com/wp-content/uploads/2012/02/Screen-Shot-2012-02-25-at-10.06.01-AM.png

      그리고 언급하신 자동완성 기능은 저는 잘 작동하는 것을 확인했습니다. HRLee 님은 안 되시나요?

  • 10ro 2012.12.27 18:20

    안녕하세요 cocos2d-x를 배우고있는 사람입니다.
    질문이 있어서 이렇게 글을 올리게 되었는데요 설정하기 1에서
    bash ${workspace_loc:/hello}/build_native.sh NDK_DEBUG=1 V=1
    추가할 때 적용하고나서 "bash" is not found in PATH 라는 에러가 났습니다
    혹시 이 에러에 대해서 해결 방법을 알 수 있을까요?

    또 한가지는 GNU C++ 이 없는데요 미숙하다보니 해결하기 힘든문제라 이렇게
    글을 올리게되었습니다. 만약 해결방법을 아신다면 답글 달아주시면
    감사하겠습니다 (__)
    답글

    • Favicon of https://bongman.tistory.com BlogIcon 가리봉맨 2013.01.12 23:06 신고

      혹시 윈도우 환경에서 개발 중이신가요? 검색해 보시면 아시겠지만 bash는 유닉스 쉘입니다. 윈도우에서 유닉스 관련 기능을 사용하려면 cygwin을 설치하셔야 합니다. 역시 검색해 보시면 관련 정보가 많이 나옵니다.

      참고로 본 포스트는 Mac 환경에서 개발한다는 전제 하에 쓴 글입니다. Mac OS 자체가 유닉스 기반의 OS이기 때문에 유닉스 관련 셋팅을 따로 해 줄 필요가 없습니다.

  • 알 수 없는 사용자 2013.07.02 14:40

    안녕하세요, 봉맨 님꼐서 포스팅 해준 글 덕분에
    mac osx, eclipse, android, c++, cocos2d-x 까지 세팅 완료 하여 정상적으로 빌드 & 실행되었습니다.
    한가지 문의드릴 게 있는데요,
    현재 HelloWorld 프로젝트 안에 /Classes/ 코코스2D-X용 CPP파일들을 링크로 끌고 와 있는 상태 입니다.
    근데 이클립스에서 cpp파일 수정후 저장하고 build project, clean project, run application 다 해도 cpp파일이 빌드가 안되는것 같습니다.
    허나 메세지는
    14:19:09 **** Incremental Build of configuration Default for project HelloWorld ****
    /Users/jinwookim/work/android/Cocos2dx/cocos2d-x-2.1.4/HelloWorld/proj.android/build_native.sh NDK_DEBUG=0 V=1 all

    14:19:09 Build Finished (took 114ms)
    잘 나옵니다

    console창을 따로 띄워서 거기서 ./build_nateive.sh 를 실행시켜줘야 비로소 cpp가 빌드되서 새로운 .so가 생성이 되는것 같습니다.

    제가 원하는 환경은 이클립스에서, cocos2d-x용 cpp수정, android용 java수정, 빌드 누르면 둘다 빌드, run하면 두개 빌드된 결과물로 apk생성 및 app실행 입니다.
    세팅이 잘못된건지... 봉맨 님꼐서도 콘솔에서 빌드하시는지 아님 이클립스에서cpp가 빌드되시는지요?
    답글

  • huhu 2013.10.28 17:53

    안녕하세요. 포스팅은 잘 봤습니다. 많은 참고가 되었습니다. 감사합니다.
    근데 질문이 한가지가 있는데요. 위의 포스팅 대로 수행하니 에러는 다 사라졌습니다.
    하지만 시뮬레이션을 실행하면
    알수없는 문제로 인해 정지되었다고 뜹니다. 이것은 무엇이
    문제일지 알려주시면 감사하겠습니다.
    답글