android ndk makefile中常见的预定义变量是什么?我如何查看这些变量?

android ndk makefile中常见的预定义变量是什么?我如何查看这些变量?,android,android-ndk,makefile,Android,Android Ndk,Makefile,android ndk makefile中常见的预定义变量是什么?我如何查看这些变量 例如,TARGET\u平台 还有哪些其他内容,以及如何输出值?您可以输出字符串$(警告“FOO”)或$(信息“FOO”) 使用警告,输出中包括文件和行号 使用info,只打印字符串 许多预定义的android ndk变量都记录在 [ANDROID\u NDK\u DIR]/docs/ANDROID-MK.html [ANDROID\u NDK\u DIR]/docs/APPLICATION-MK.html

android ndk makefile中常见的预定义变量是什么?我如何查看这些变量

例如,
TARGET\u平台


还有哪些其他内容,以及如何输出值?

您可以输出字符串
$(警告“FOO”)
$(信息“FOO”)

使用
警告
,输出中包括文件和行号

使用
info
,只打印字符串


许多预定义的android ndk变量都记录在

  • [ANDROID\u NDK\u DIR]/docs/ANDROID-MK.html
  • [ANDROID\u NDK\u DIR]/docs/APPLICATION-MK.html
其他人没有证件。例如
NDK\u MAX\u平台级

要打印大多数变量,请执行以下操作:

$(info "---------- ANDROID.MK VARS --------------")
$(info "TARGET_ARCH: $(TARGET_ARCH)")
$(info "TARGET_PLATFORM: $(TARGET_PLATFORM)")
$(info "TARGET_ARCH_ABI: $(TARGET_ARCH_ABI)")
$(info "TARGET_ABI: $(TARGET_ABI)")
$(info "LOCAL_PATH: $(LOCAL_PATH)")
$(info "LOCAL_MODULE: $(LOCAL_MODULE)")
$(info "LOCAL_MODULE_FILENAME: $(LOCAL_MODULE_FILENAME)")
$(info "LOCAL_SRC_FILES: $(LOCAL_SRC_FILES)")
$(info "LOCAL_CPP_EXTENSION: $(LOCAL_CPP_EXTENSION)")
$(info "LOCAL_CPP_FEATURES: $(LOCAL_CPP_FEATURES)")
$(info "LOCAL_C_INCLUDES: $(LOCAL_C_INCLUDES)")
$(info "LOCAL_CFLAGS: $(LOCAL_CFLAGS)")
$(info "LOCAL_CXXFLAGS: $(LOCAL_CXXFLAGS)")
$(info "LOCAL_CPPFLAGS: $(LOCAL_CPPFLAGS)")
$(info "LOCAL_STATIC_LIBRARIES: $(LOCAL_STATIC_LIBRARIES)")
$(info "LOCAL_SHARED_LIBRARIES: $(LOCAL_SHARED_LIBRARIES)")
$(info "LOCAL_WHOLE_STATIC_LIBRARIES: $(LOCAL_WHOLE_STATIC_LIBRARIES)")
$(info "LOCAL_LDLIBS: $(LOCAL_LDLIBS)")
$(info "LOCAL_LDFLAGS: $(LOCAL_LDFLAGS)")
$(info "LOCAL_ALLOW_UNDEFINED_SYMBOLS: $(LOCAL_ALLOW_UNDEFINED_SYMBOLS)")
$(info "LOCAL_ARM_MODE: $(LOCAL_ARM_MODE)")
$(info "LOCAL_ARM_NEON: $(LOCAL_ARM_NEON)")
$(info "LOCAL_DISABLE_NO_EXECUTE: $(LOCAL_DISABLE_NO_EXECUTE)")
$(info "LOCAL_DISABLE_RELRO: $(LOCAL_DISABLE_RELRO)")
$(info "LOCAL_DISABLE_FORMAT_STRING_CHECKS: $(LOCAL_DISABLE_FORMAT_STRING_CHECKS)")
$(info "LOCAL_EXPORT_CFLAGS: $(LOCAL_EXPORT_CFLAGS)")
$(info "LOCAL_EXPORT_CPPFLAGS: $(LOCAL_EXPORT_CPPFLAGS)")
$(info "LOCAL_EXPORT_C_INCLUDES: $(LOCAL_EXPORT_C_INCLUDES)")
$(info "LOCAL_EXPORT_LDFLAGS: $(LOCAL_EXPORT_LDFLAGS)")
$(info "LOCAL_EXPORT_LDLIBS: $(LOCAL_EXPORT_LDLIBS)")
$(info "LOCAL_SHORT_COMMANDS: $(LOCAL_SHORT_COMMANDS)")
$(info "LOCAL_THIN_ARCHIVE: $(LOCAL_THIN_ARCHIVE)")
$(info "LOCAL_FILTER_ASM: $(LOCAL_FILTER_ASM)")

$(info "---------- APPLICATION.MK VARS --------------")
$(info "APP_PROJECT_PATH: $(APP_PROJECT_PATH)")
$(info "APP_MODULES: $(APP_MODULES)")
$(info "APP_OPTIM: $(APP_OPTIM)")
$(info "APP_CFLAGS: $(APP_CFLAGS)")
$(info "APP_CXXFLAGS: $(APP_CXXFLAGS)")
$(info "APP_CPPFLAGS: $(APP_CPPFLAGS)")
$(info "APP_LDFLAGS: $(APP_LDFLAGS)")
$(info "APP_BUILD_SCRIPT: $(APP_BUILD_SCRIPT)")
$(info "APP_ABI: $(APP_ABI)")
$(info "APP_PLATFORM: $(APP_PLATFORM)")
$(info "APP_STL: $(APP_STL)")
$(info "APP_GNUSTL_FORCE_CPP_FEATURES: $(APP_GNUSTL_FORCE_CPP_FEATURES)")
$(info "APP_SHORT_COMMANDS: $(APP_SHORT_COMMANDS)")
$(info "NDK_TOOLCHAIN_VERSION: $(NDK_TOOLCHAIN_VERSION)")
$(info "APP_PIE: $(APP_PIE)")
$(info "APP_THIN_ARCHIVE: $(APP_THIN_ARCHIVE)")

$(info "---------- OTHER VARS --------------")
$(info "NDK_PLATFORMS_ROOT: $(NDK_PLATFORMS_ROOT)")
$(info "NDK_ROOT: $(NDK_ROOT)")
$(info "NDK_ALL_PLATFORMS: $(NDK_ALL_PLATFORMS)")
$(info "BUILD_SYSTEM: $(BUILD_SYSTEM)")
$(info "NDK_ALL_PLATFORM_LEVELS: $(NDK_ALL_PLATFORM_LEVELS)")
$(info "NDK_MAX_PLATFORM_LEVEL: $(NDK_MAX_PLATFORM_LEVEL)")
$(info "NDK_KNOWN_DEVICE_ABIS: $(NDK_KNOWN_DEVICE_ABIS)")
$(info "NDK_KNOWN_ABIS: $(NDK_KNOWN_ABIS)")
$(info "NDK_KNOWN_ARCHS: $(NDK_KNOWN_ARCHS)")
$(info "NDK_FOUND_ARCHS: $(NDK_FOUND_ARCHS)")
$(info "NDK_APP_ABI_ALL_EXPANDED: $(NDK_APP_ABI_ALL_EXPANDED)")
$(info "NDK_ALL_TOOLCHAINS: $(NDK_ALL_TOOLCHAINS)")
$(info "NDK_ALL_ABIS: $(NDK_ALL_ABIS)")
$(info "NDK_ALL_ARCHS: $(NDK_ALL_ARCHS)")
$(info "TOOLCHAIN_CONFIGS: $(TOOLCHAIN_CONFIGS)")
$(info "NDK_TOOLCHAIN: $(NDK_TOOLCHAIN)")
如果你的“make”程序是,它会识别一个“-p”选项,显示所有有效的变量。对于给定的makefile,可以通过

make -n -p
以下是一个教程,其中提到了最常见的变量:

Android使用的是
ndk build
而不是
make
,根据文档,它在底层使用GNU make:的确,它工作了(
ndk build-p
ndk build-n-p
),但结果与我预期的有点不同。输出更像一个日志,而不是一个变量列表。尽管如此,这是一个有用的技巧。同意输出没有那么整洁,但由于它是完整的(而不是根据单独维护的文档),它应该是有用的:-)