Android.mk定义C/C++宏

本文详细介绍了在Android.mk中如何定义C/C++宏。包括两种情况:一是仅在模块内部使用的宏定义方法;二是全局宏定义,使得所有模块都能使用。通过具体示例,讲解了如何在代码中正确应用这些宏。

Android.mk定义C/C++宏

第一种情况,定义模块内部使用的宏,在该模块mk文件里定义如下:

LOCAL_CFLAGS += -DXXXX

相当于 #define XXXX
注意 -D

第二种情况,定义全局使用的宏,也就是各个模块都能使用
首先在build/core/binary.mk里面声明:

	my_cflags   += $(XXX_CFLAGS)
	my_cppflags += $(XXX_CFLAGS)

然后在mk文件里:

XXX_CFLAGS += -DXXXX

这样就全局定义了一个宏XXXX

在代码里面可以这样使用:

#ifdef XXXX
    ...
#else
    ...
#endif
LOCAL_PATH :=$(call my-dir) include $(LOCAL_PATH)/../../jni/CocosAndroid.mkcocos打包apkExecution failed for task ':NewProject_1:generateJsonModelDebug'. > error when building with ndkBuild using D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\jni\Android.mk: Build command failed. Error while executing process C:\Users\Lenovo\AppData\Local\Android\Sdk\ndk\19.2.5345600\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\jni\Android.mk NDK_APPLICATION_MK=D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-16 NDK_OUT=D:/Dinging/Cocos_project/NewProject_1/build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib NDK_TOOLCHAIN_VERSION=clang NDK_MODULE_PATH=C:\ProgramData\cocos\editors\Creator\2.3.4\resources\cocos2d-x;C:\ProgramData\cocos\editors\Creator\2.3.4\resources\cocos2d-x\cocos;C:\ProgramData\cocos\editors\Creator\2.3.4\resources\cocos2d-x\external -j16 NDK_DEBUG=1 APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n} md "D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib\armeabi-v7a" >NUL 2>NUL || rem C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../prebuilt/windows-x86_64/bin/echo.exe [armeabi-v7a] "Gdbserver ": "[arm-linux-androideabi] D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdbserver" copy /b/y "C:\Users\Lenovo\AppData\Local\Android\Sdk\ndk\19.2.5345600\build\\..\prebuilt\android-arm\gdbserver\gdbserver" "D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib\armeabi-v7a\gdbserver" > NUL C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../prebuilt/windows-x86_64/bin/echo.exe [armeabi-v7a] "Gdbsetup ": "D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdb.setup" C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../prebuilt/windows-x86_64/bin/echo.exe "set solib-search-path D:/Dinging/Cocos_project/NewProject_1/build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a" > D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdb.setup C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../prebuilt/windows-x86_64/bin/echo.exe "directory C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../sources/android/support C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/audio/android/../include C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/audio/android/../.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/audio/android/../../platform/android C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/audio/android/../../../external C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/audio/android/../../../external/sources C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/external/sources/pvmp3dec/src C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/external/sources/pvmp3dec/include C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../sources/cxx-stl/llvm-libc++/include C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../sources/cxx-stl/llvm-libc++abi/include D:/Dinging/Cocos_project/NewProject_1/build/jsb-link/frameworks/runtime-src/proj.android-studio/app/jni/../../jni/../../Classes C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/platform C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/base C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/network C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/../external/android/armeabi-v7a/include C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/../external/sources C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/renderer C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/external/android/armeabi-v7a/include/uv C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/extensions/. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/extensions/.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/editor-support C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/editor-support/.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/editor-support/../.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/platform/android C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../sources/android/cpufeatures C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/external/android/armeabi-v7a/include/v8 C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/scripting/js-bindings/manual C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/scripting/js-bindings/manual/platform/android C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/scripting/js-bindings/auto C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/renderer/gfx C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/platform/android/.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/platform/android/../.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/platform/android/../../.. C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/extensions/../cocos C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/extensions/../cocos/platform C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/extensions/../external/sources C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/editor-support/../../external/android/armeabi-v7a/include/v8 C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/cocos/editor-support/../../external/sources/ C:/ProgramData/cocos/editors/Creator/2.3.4/resources/cocos2d-x/external/sources/tremolo/Tremolo" >> D:\Dinging\Cocos_project\NewProject_1\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdb.setup process_begin: CreateProcess(NULL, "", ...) failed. C:/Users/Lenovo/AppData/Local/Android/Sdk/ndk/19.2.5345600/build//../build/core/build-all.mk:92: Android NDK: WARNING: No modules to build your APP_MODULES definition is probably incorrect! make: *** No rule to make target `cocos2djs', needed by `ndk-app-local'. Stop. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org Ask Gemini
最新发布
08-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值