【问题标题】:Cocos2d-x fails to compile C++ code in MacOs using ./build_native.shCocos2d-x 无法在 MacOs 中使用 ./build_native.sh 编译 C++ 代码
【发布时间】:2013-11-03 06:48:46
【问题描述】:

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

这些警告是:

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.5 解决了。但我不确定 100%。可以试试确认吗?

标签: android c++ macos android-ndk cocos2d-x


【解决方案1】:

同样的问题(Cocos2DX 2.1.1)

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

可以关闭编译错误:

在 Application.mk 中: APP_CFLAGS += -Wno-error=format-security

或者更好,解决字符串格式的问题,在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(deviceModel); -> LOGD("%s",deviceModel);

3 - OpenSLEngine.cpp - LOGD(errorInfo); -> LOGD("%s",errorInfo);

4 - SimpleAudioEngineOpenSL.cpp - LOGD(errorInfo); -> LOGD("%s",errorInfo);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2014-10-17
    • 2013-12-21
    相关资源
    最近更新 更多