【发布时间】:2022-01-21 18:44:14
【问题描述】:
我试图在编译 .cpp 文件时通过 CMake 获取中间 .i .s 文件,但 cmake 默认只输出 .o 文件。有没有什么命令可以操作cmake来保存这些中间文件,非常感谢!
【问题讨论】:
我试图在编译 .cpp 文件时通过 CMake 获取中间 .i .s 文件,但 cmake 默认只输出 .o 文件。有没有什么命令可以操作cmake来保存这些中间文件,非常感谢!
【问题讨论】:
如果您使用的是gcc,请尝试添加此行。
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -save-temps=obj")
【讨论】:
使用哪个标志取决于您使用的编译器。此外,您应该强烈倾向于将此类特定于编译器和场景的标志从外部注入到构建中,而不是在构建中使用set()-ing 它们。
对于g++ 或clang++,以下调用将是合适的:
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="-save-temps=obj"
对于 MSVC,它将是:
> cmake -S . -B build "-DCMAKE_CXX_FLAGS=/FA"
【讨论】: