Cocos2d-x Android.mk에서 LOCAL_SRC_FILES에 Classes 폴더의 cpp 자동 추가하기
이 팁은 이미 많은 분들이 알고 계실 듯 합니다. 작년에 정리할 때는 Android.mk 파일에 classes에 있는 cpp 파일들을 일일이 추가해야 한다고 했었는데요, 이게 영 불편한게 아니죠.
CLASSES_DIRECTORY := $(LOCAL_PATH)/../../Classes
SOURCE_FILES := $(shell find $(CLASSES_DIRECTORY) -name *.cpp)
SOURCE_FILES := $(sort $(SOURCE_FILES))
SOURCE_FILES := $(subst $(LOCAL_PATH)/,,$(SOURCE_FILES))
LOCAL_SRC_FILES := hellocpp/main.cpp \
$(SOURCE_FILES)
기존 LOCAL_SRC_FILES를 위 내용으로 대체하면 자동으로 Classes 하위 폴더의 cpp를 검색해서 한번에 자동 추가할 수 있습니다. 맥에서 해봤는데 윈도우 Cygwin에서도 잘 될지는 아직 해보지 못했네요.
위는 build_native.sh 인 버전 빌드할 때 였는데 파이썬 환경인 build_native.py을 윈도우 콘솔에서 하니 아래와 같은 에러가 발생하네요.
파일을 찾을 수 없습니다-*.cpp
...
[armeabi] Compile++ thumb: cocos2dcpp_shared <= main.cpp
[armeabi] SharedLibrary : libcocos2dcpp.so
jni/hellocpp/main.cpp:15: error: undefined reference to 'AppDelegate::AppDelegat
e()'
collect2.exe: error: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
이때는 아래와 같이 처리해줍니다.
FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)
LOCAL_SRC_FILES := hellocpp/main.cpp \
$(FILE_LIST:$(LOCAL_PATH)/%=%)
CLASSES_DIRECTORY := $(LOCAL_PATH)/../../Classes
SOURCE_FILES := $(shell find $(CLASSES_DIRECTORY) -name *.cpp)
SOURCE_FILES := $(sort $(SOURCE_FILES))
SOURCE_FILES := $(subst $(LOCAL_PATH)/,,$(SOURCE_FILES))
LOCAL_SRC_FILES := hellocpp/main.cpp \
$(SOURCE_FILES)
기존 LOCAL_SRC_FILES를 위 내용으로 대체하면 자동으로 Classes 하위 폴더의 cpp를 검색해서 한번에 자동 추가할 수 있습니다. 맥에서 해봤는데 윈도우 Cygwin에서도 잘 될지는 아직 해보지 못했네요.
위는 build_native.sh 인 버전 빌드할 때 였는데 파이썬 환경인 build_native.py을 윈도우 콘솔에서 하니 아래와 같은 에러가 발생하네요.
파일을 찾을 수 없습니다-*.cpp
...
[armeabi] Compile++ thumb: cocos2dcpp_shared <= main.cpp
[armeabi] SharedLibrary : libcocos2dcpp.so
jni/hellocpp/main.cpp:15: error: undefined reference to 'AppDelegate::AppDelegat
e()'
collect2.exe: error: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
이때는 아래와 같이 처리해줍니다.
FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)
LOCAL_SRC_FILES := hellocpp/main.cpp \
$(FILE_LIST:$(LOCAL_PATH)/%=%)
댓글
댓글 쓰기