Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制CMake在Android NDK项目中使用响应文件?_Android_Cmake_Android Ndk - Fatal编程技术网

如何强制CMake在Android NDK项目中使用响应文件?

如何强制CMake在Android NDK项目中使用响应文件?,android,cmake,android-ndk,Android,Cmake,Android Ndk,我有一个Android项目,它有一个NDK组件,配置为使用CMake构建。根据项目目录在驱动器上的位置,当CMake尝试构建此项目时,可能会出现“命令行太长”错误。这是因为CMake组装了巨大的命令行,其中列出了项目中的所有.cpp文件 我读到CMake有一种称为“响应文件”的机制来解决这个问题,但我找不到在NDK项目中启用它们的方法。请给我一点建议?您可以在CMakeLists.txt或build.gradle中添加 android { defaultConfig { ... extern

我有一个Android项目,它有一个NDK组件,配置为使用CMake构建。根据项目目录在驱动器上的位置,当CMake尝试构建此项目时,可能会出现“命令行太长”错误。这是因为CMake组装了巨大的命令行,其中列出了项目中的所有.cpp文件

我读到CMake有一种称为“响应文件”的机制来解决这个问题,但我找不到在NDK项目中启用它们的方法。请给我一点建议?

您可以在CMakeLists.txtbuild.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"
      }
  }
}}
看见