3

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

4

1 回答 1

0

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

if ( ${CMAKE_GENERATOR} MATCHES "Ninja" )
   set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_LINKER> -f CMakeFiles/${PROJECT_NAME}.rsp <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
endif()
于 2016-01-13T20:11:49.873 回答