【问题标题】:How to force CMake to use response files in an Android NDK project?如何强制 CMake 在 Android NDK 项目中使用响应文件?
【发布时间】:2018-12-12 15:41:11
【问题描述】:
我有一个带有 NDK 组件的 Android 项目,配置为使用 CMake 构建。根据项目目录在驱动器上的位置,我可能会收到“命令行太长”。 CMake 尝试构建此项目时出错。这是因为 CMake 组装了巨大的命令行,列出了项目中的所有 .cpp 文件。
我读到 CMake 有一种称为“响应文件”的机制来解决这个问题,但我找不到在 NDK 项目中启用它们的方法。请给点建议好吗?
【问题讨论】:
标签:
android
cmake
android-ndk
【解决方案1】:
你 can specify response file 在 CMakeLists.txt 或 build.gradle 中添加
android { defaultConfig { ...
externalNativeBuild {
cmake {
arguments
"-DCMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS=1",
"-DCMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS=1" ,
"-DCMAKE_C_RESPONSE_FILE_LINK_FLAG=@",
"-DCMAKE_CXX_RESPONSE_FILE_LINK_FLAG=@",
"-DCMAKE_NINJA_FORCE_RESPONSE_FILE=1"
}
}
}}