编译环境:eclipse,ndk r10d, Cocos引擎 V1.0 Preview版本
问题描述:用ndk r10d编译出错,但是如果换成ndk r9d又能正常通过编译。可能有人会说用ndk r9d可以行了,但是3.3不是都说最好用r10c以上了吗?
另外我试过,用Cocos引擎 V1.0 Preview版本新创建出来的工程是能够用ndk r10d编译通过的,也就是说我用了某些2dx里面较少人用到的东西才会导致编译不过,但我也不知道具体是哪里的问题。所以只好来这反应了
下面是ndk r10d编译出错的错误信息
SharedLibrary : libcocos2dcpp.so
/Users/tao/develop/android/android-ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.8/…/…/…/…/arm-linux-androideabi/bin/ld: error: /Applications/Cocos/frameworks/cocos2d-x/external/curl/prebuilt/android/armeabi/libcurl.a(sha512-armv4.o): requires unsupported dynamic reloc R_ARM_REL32; recompile with -fPIC
/Applications/Cocos/frameworks/cocos2d-x/external/curl/prebuilt/android/armeabi/libcurl.a(url.o):function IsPipeliningPossible: error: relocation overflow in R_ARM_THM_CALL
/Applications/Cocos/frameworks/cocos2d-x/external/curl/prebuilt/android/armeabi/libcurl.a(url.o):function fix_hostname.isra.1: error: relocation overflow in R_ARM_THM_CALL
jni/…/…/Classes/mysocial/EziFacebookUserBase.cpp:227: error: undefined reference to ‘cocos2d::Data::fastSet(unsigned char*, int)’
jni/…/…/Classes/mysocial/EziFacebookUserBase.cpp:233: error: undefined reference to ‘cocos2d::Image::initWithImageData(unsigned char const*, int)’
jni/…/…/Classes/mysocial/EziFacebookUserBase.cpp:197: error: undefined reference to ‘cocos2d::Image::initWithImageData(unsigned char const*, int)’
jni/…/…/Classes/mysocial/EziFacebookUserBase.cpp:203: error: undefined reference to ‘cocos2d::Data::fastSet(unsigned char*, int)’
./obj/local/armeabi/objs/cocos2dcpp_shared///Classes/writenumber/WriteNumberTile.o:jni/…/…/Classes/writenumber/WriteNumberTile.cpp:vtable for WriteNumberTile: error: undefined reference to 'cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic_string<char, std::1::char_traits, std::1::allocator > const&, int)’
./obj/local/armeabi/objs/cocos2dcpp_shared///Classes/trueorfalse/TrueOrFalseTile.o:jni/…/…/Classes/trueorfalse/TrueOrFalseTile.cpp:vtable for TrueOrFalseTile: error: undefined reference to 'cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic_string<char, std::1::char_traits, std::1::allocator > const&, int)’
./obj/local/armeabi/objs/cocos2dcpp_shared///Classes/simplicity/SimplicityTile.o:jni/…/…/Classes/simplicity/SimplicityTile.cpp:vtable for SimplicityTile: error: undefined reference to ‘cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic_string<char, std::1::char_traits, std::1::allocator > const&, int)’
./obj/local/armeabi/objs/cocos2dcpp_shared///Classes/operations/OperationsTile.o:jni/…/…/Classes/operations/OperationsTile.cpp:vtable for OperationsTile: error: undefined reference to ‘cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int)’
make: Leaving directory `/Users/tao/develop/cocos3-projects/AllAboutNumber/proj.android’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
The Selected NDK toolchain version was 4.8 !
make: *** Error 1
Traceback (most recent call last):
File “/Users/tao/develop/cocos3-projects/AllAboutNumber/proj.android/build_native.py”, line 159, in
build(opts.ndk_build_param,opts.android_platform,opts.build_mode)
File “/Users/tao/develop/cocos3-projects/AllAboutNumber/proj.android/build_native.py”, line 146, in build
do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,android_platform,build_mode)
File “/Users/tao/develop/cocos3-projects/AllAboutNumber/proj.android/build_native.py”, line 82, in do_build
raise Exception(“Build dynamic library for project " + app_android_root + " ] fails!”)
Exception: Build dynamic library for project /Users/tao/develop/cocos3-projects/AllAboutNumber/proj.android ] fails!