Cocos2d-x无法使用在MacO中编译C++代码/build_native.sh

Cocos2d-x fails to compile C++ code in MacOs using ./build_native.sh

本文关键字:代码 C++ build sh native 编译 MacO Cocos2d-x      更新时间:2023-10-16

我在MacOs Mavericks下使用android-ndk-r9b和cocos2d-x-2.1.4。我能够为cocos2d-x创建android应用程序,但当我尝试使用编译C++代码时/buildnative.sh脚本,编译器收到一些警告,最后失败了。

这些警告是:

Android NDK: WARNING: APP_PLATFORM android-18 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml    
Android NDK: WARNING:/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries    

[armeabi] Compile thumb  : cocos2dx_static <= quaternion.c
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/kazmath/src/quaternion.c: In function 'kmQuaternionAssign':
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/kazmath/src/quaternion.c:478:5: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
[armeabi] Compile thumb  : cocos2dx_static <= vec4.c
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/kazmath/src/vec4.c: In function 'kmVec4Assign':
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/kazmath/src/vec4.c:150:5: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
[armeabi] Compile++ thumb: cocos2dx_static <= CCCommon.cpp
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/platform/android/CCCommon.cpp: In function 'void cocos2d::CCLog(char const*, ...)':
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/platform/android/CCCommon.cpp:44:72: error: format not a string literal and no format arguments [-Werror=format-security]
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/platform/android/CCCommon.cpp: In function 'void cocos2d::CCLuaLog(char const*)':
/Developer/cocos2d-x-2.1.4/samplecocos2dxandroid/proj.android/../../cocos2dx/platform/android/CCCommon.cpp:54:77: error: format not a string literal and no format arguments [-Werror=format-security]
cc1plus: some warnings being treated as errors

我想知道如果有人遇到过类似的错误,如何解决?

谢谢!

此处存在相同问题(Cocos2DX 2.1.1(

http://www.cocos2d-x.org/forums/6/topics/32437?r=39742#message-39742

您可以关闭编译器错误:

在Application.mk中:APP_CFLAGS+=-Wno错误=格式化安全

或更好的方法,解决字符串格式的问题,在4点cocos代码中(如您在上面的链接中看到的(:

1-CCCommon.cpp-__android_log_print(android_log_DEBUG,"cocos2d-x调试信息",buf(;->__android_log_print(android_log_DEBUG,"cocos2d-x调试信息","%s",buf(;

2-SimpleAudioEngine.cpp-LOGD(设备模型(;->LOGD("%s",deviceModel(;

3-OpenSLEngine.cpp-LOGD(错误信息(;->LOGD("%s",errorInfo(;

4-SimpleAudioEngineOpenSL.cpp-LOGD(错误信息(;->LOGD("%s",errorInfo(;