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响应文件Unix Makefile生成器与ninja生成器_Cmake_Ninja - Fatal编程技术网

cmake响应文件Unix Makefile生成器与ninja生成器

cmake响应文件Unix Makefile生成器与ninja生成器,cmake,ninja,Cmake,Ninja,CMake 3.4.1正在使用响应文件来缩短与ninja而不是unix makefiles链接的命令行长度。我使用IAR嵌入式工具链进行交叉编译,它不支持给定的响应文件语法(即@CMakeFiles/proj.rsp)。我更喜欢使用ninja构建系统,因为它速度更快,但我需要一个解决此响应文件的方法。要么我需要禁用响应文件生成,要么让它使用我的工具链支持的语法(即-f filename)。这两种方法都有吗?我发现这对我来说很有效,尽管可能有更聪明的方法。如果命令行足够短,构建生成器不使用响应文件

CMake 3.4.1正在使用响应文件来缩短与ninja而不是unix makefiles链接的命令行长度。我使用IAR嵌入式工具链进行交叉编译,它不支持给定的响应文件语法(即@CMakeFiles/proj.rsp)。我更喜欢使用ninja构建系统,因为它速度更快,但我需要一个解决此响应文件的方法。要么我需要禁用响应文件生成,要么让它使用我的工具链支持的语法(即-f filename)。这两种方法都有吗?

我发现这对我来说很有效,尽管可能有更聪明的方法。如果命令行足够短,构建生成器不使用响应文件,我不会感到惊讶

if ( ${CMAKE_GENERATOR} MATCHES "Ninja" )
   set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_LINKER> -f CMakeFiles/${PROJECT_NAME}.rsp <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
endif()
if(${CMAKE_GENERATOR}匹配“忍者”)
设置(CMAKE_CXX_LINK_可执行文件“-f CMakeFiles/${PROJECT_NAME}.rsp-o”)
endif()