Build command failed.
Error while executing process C:\Users\atlan\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {--build C:\Users\atlan\Desktop\revenant\proj.android\app\.externalNativeBuild\cmake\debug\x86 --target MyGame}
[1/737] Building CXX object engine/external/recast/CMakeFiles/ext_recast.dir/Detour/DetourNavMeshQuery.cpp.o
[2/737] Building CXX object engine/external/recast/CMakeFiles/ext_recast.dir/DebugUtils/DebugDraw.cpp.o
~
생략
~
C:\Users\atlan\Desktop\revenant\Classes\ParallaxScrollOffset.cpp:31:9: warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true [-Wundefined-bool-conversion]
if(!this) return NULL;
~^~~~
1 warning generated.
[737/737] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libMyGame.so
FAILED: cmd.exe /C "cd . && C:\android-ndk\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=i686-none-linux-android --gcc-toolchain=C:/android-ndk/toolchains/x86-4.9/prebuilt/windows-x86_64 --sysroot=C:/android-ndk/sysroot -fPIC -isystem C:/android-ndk/sysroot/usr/include/i686-linux-android -D__ANDROID_API__=16 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fsigned-char -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a --sysroot C:/android-ndk/platforms/android-16/arch-x86 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -LC:/android-ndk/sources/cxx-stl/llvm-libc++/libs/x86 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libMyGame.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libMyGame.so CMakeFiles/MyGame.dir/Classes/AppDelegate.cpp.o CMakeFiles/MyGame.dir/Classes/GameScene.cpp.o CMakeFiles/MyGame.dir/Classes/AppManager.cpp.o CMakeFiles/MyGame.dir/Classes/GLES-Render.cpp.o CMakeFiles/MyGame.dir/Classes/PhysicsShapeCache.cpp.o CMakeFiles/MyGame.dir/Classes/StartScene.cpp.o CMakeFiles/MyGame.dir/Classes/Entity.cpp.o CMakeFiles/MyGame.dir/Classes/Player.cpp.o CMakeFiles/MyGame.dir/Classes/ContactListener.cpp.o CMakeFiles/MyGame.dir/Classes/ParallaxNodeExtras.cpp.o CMakeFiles/MyGame.dir/Classes/ParallaxScrollNode.cpp.o CMakeFiles/MyGame.dir/Classes/ParallaxScrollOffset.cpp.o CMakeFiles/MyGame.dir/Classes/SneakyButton.cpp.o CMakeFiles/MyGame.dir/Classes/SneakyButtonSkinnedBase.cpp.o CMakeFiles/MyGame.dir/Classes/SneakyJoystickSkinnedBase.cpp.o CMakeFiles/MyGame.dir/proj.android/app/jni/hellocpp/main.cpp.o -Wl,--whole-archive engine/cocos/platform/libcpp_android_spec.a -Wl,--no-whole-archive lib/libcocos2d.a lib/libexternal.a ../../../../../../cocos2d/external/Box2D/prebuilt/android/x86/libbox2d.a ../../../../../../cocos2d/external/chipmunk/prebuilt/android/x86/libchipmunk.a ../../../../../../cocos2d/external/freetype2/prebuilt/android/x86/libfreetype.a lib/libext_recast.a ../../../../../../cocos2d/external/jpeg/prebuilt/android/x86/libjpeg.a ../../../../../../cocos2d/external/webp/prebuilt/android/x86/libwebp.a ../../../../../../cocos2d/external/bullet/prebuilt/android/x86/libLinearMath.a ../../../../../../cocos2d/external/bullet/prebuilt/android/x86/libBulletDynamics.a ../../../../../../cocos2d/external/bullet/prebuilt/android/x86/libBulletCollision.a ../../../../../../cocos2d/external/bullet/prebuilt/android/x86/libLinearMath.a ../../../../../../cocos2d/external/bullet/prebuilt/android/x86/libBulletMultiThreaded.a ../../../../../../cocos2d/external/bullet/prebuilt/android/x86/libMiniCL.a ../../../../../../cocos2d/external/tiff/prebuilt/android/x86/libtiff.a ../../../../../../cocos2d/external/websockets/prebuilt/android/x86/libwebsockets.a ../../../../../../cocos2d/external/uv/prebuilt/android/x86/libuv_a.a ../../../../../../cocos2d/external/openssl/prebuilt/android/x86/libssl.a ../../../../../../cocos2d/external/openssl/prebuilt/android/x86/libcrypto.a lib/libext_tinyxml2.a lib/libext_xxhash.a lib/libext_xxtea.a lib/libext_clipper.a lib/libext_edtaa3func.a lib/libext_convertUTF.a lib/libext_poly2tri.a lib/libext_md5.a ../../../../../../cocos2d/external/curl/prebuilt/android/x86/libcurl.a ../../../../../../cocos2d/external/png/prebuilt/android/x86/libpng.a engine/external/android-specific/cpufeatures/libext_cpufeatures.a -ldl lib/libext_pvmp3dec.a lib/libext_tremolo.a ../../../../../../cocos2d/external/zlib/prebuilt/android/x86/libz.a lib/libext_unzip.a -lGLESv2 -lEGL -llog -landroid -lOpenSLES -latomic -lm "C:/android-ndk/sources/cxx-stl/llvm-libc++/libs/x86/libc++.a" && cd ."
C:\Users\atlan\Desktop\revenant\Classes/GameScene.cpp:185: error: undefined reference to 'SneakyJoystick::SneakyJoystick()'
C:\Users\atlan\Desktop\revenant\Classes/GameScene.cpp:186: error: undefined reference to 'SneakyJoystick::initWithRect(cocos2d::Rect)'
C:\Users\atlan\Desktop\revenant\Classes/SneakyJoystickSkinnedBase.cpp:98: error: undefined reference to 'SneakyJoystick::setThumbRadius(float)'
C:\Users\atlan\Desktop\revenant\Classes/SneakyJoystickSkinnedBase.cpp:100: error: undefined reference to 'SneakyJoystick::setThumbRadius(float)'
C:\Users\atlan\Desktop\revenant\Classes/SneakyJoystickSkinnedBase.cpp:103: error: undefined reference to 'SneakyJoystick::setJoystickRadius(float)'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
개발을 계속하던 중 중반부가 넘었다고 판단해 포팅을 시도하던 중 발견되었다.
눈에 띄는 에러문구는 error: undefined reference to...
검색을 시도했고 #indef __cplusplus extern "C" ~~~ 이런 작업도 해봤고
android 폴더 내 gradle - cmake 관련쪽에서도 건드려보았다.
하지만 오류는 잡히지 않았다.
한번에 20개가 넘는 cpp/h 파일이 추가되는 바람에 오류 잡기도 힘들다.
어디서 난 에러인지는 대충 예상도 가는데 실험하는 족족 스튜디오 내 빌드가 수시로 멈추거나
에러로 대답한다.
개노답 상황
=======================================================
2020년 5월 14일 수정
수정하는걸 그동안 까먹었었는데
간단하다. CMake쪽에서 classes / cpp 그리고 android.mk
에서 경로 설정을 너무 생각없이 했었다.
내 프로젝트의 폴더 경로는 대부분이 classes에 되어있긴하나 , 일부 entity, player등의 파일은 Entities라는 폴더 안에 있다. 경로를 그냥 classes/Player.h or cpp였던걸
classes/Entities/Player.h 이런식으로 해주면 된다.
아마 android.mk 파일에서 헤더 파일 추가쪽에 코드가 한줄이라 최상위 폴더 하나만 잡아줘도 되겠거니.. 했던게 오류를 일으켰다. 저 부분만 수정을 해준 뒤 제대로 빌드를 해주니 문제없이 돌아간다
'# 버그 메모장' 카테고리의 다른 글
[SOLVED]Error running '프로젝트명': Gradle project sync failed. Please fix your project and try again. (0) | 2020.05.14 |
---|---|
[SOLVED]LNK2001 에러 (0) | 2020.04.14 |
cocos2d-x to Android-Studio :: apk강제종료 에러 (0) | 2020.02.21 |
[Solved]Execution failed for task ':test:mergeDebugAssets (0) | 2020.02.06 |
[Solved]Android-studio with cocos2d-x :: external native build issues simple error configuring 오류 (0) | 2020.02.06 |