2018년 3월 20일 화요일

libcocos2d 내부에 있는 HttpClient.cpp 수정하기

2016. 1. 7. 14:38

libcocos2d 뿐 아니라 해당 라이브러리안에 있는 모든 파일을 수정할때 적용될 이야기이다.
[ cocos2d-x Ver 3.4 ]

HttpClient.cpp 수정후 해당 내용이 Windows같은 경우 바로 적용이 되지만
Android / iOS에서는 적용되지않아 문제가 발생되었다. 
Android / iOS 컴파일을 정상으로 되었기에 제대로 작동을 하는것처럼 보이지만 수정된 코드가 적용되지 않아 실제 원하는 결과를 볼수가 없었다. 

따라서 각각 아래와 같이 해줘야 한다.

1. Android
아래와 같이 proj.android/jni/Android.mk 에 있는 파일을 직접 편집한다

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../cocos2d/cocos/network/HttpClient.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp

이렇게해면 변경된 코드를 적용 시킬수 있다. 
libcocos2d를 clean 한뒤에 다시 rebuild 하는 방법도 있겠으나 계속 수정하면서 컴파일 해야 한다면 이 방법이 더 편하다. 

2. iOS
iOS의 경우는 좀 이상한데
해당 cocos2d_libs.xcodeproj 를 선택해서 clean 후 build해도 적용이 되지 않았다.

원래 여기에 있는 HttpClient-ios.mm 파일을 삭제했더니 적용했던 코드들이 실행되었다. 
(실제 삭제가 아니고 위 화면처럼 프로젝트에서 제거만 했음 )
디버깅을 해보면 HttpClient.cpp 에 있는 코드로 들어가지 않고  HttpClient-ios.mm로 들어가서 실행되는 것을 알 수 있었다.
( 이것이 cocos2d-x 3.4에 국한된 문제인지는 확인해 봐야 될듯 )
HttpClient-ios.mm  파일을 빼고 디버깅을 하면 HttpClient.cpp로 디버그 코드가 들어가는 것을 확인 할 수 있다. 

댓글 없음:

댓글 쓰기