【问题标题】:How to generate preprocess and assmeble code by cmake?如何通过cmake生成预处理和汇编代码?
【发布时间】:2022-01-21 18:44:14
【问题描述】:

我试图在编译 .cpp 文件时通过 CMake 获取中间 .i .s 文件,但 cmake 默认只输出 .o 文件。有没有什么命令可以操作cmake来保存这些中间文件,非常感谢!

【问题讨论】:

    标签: c++ cmake


    【解决方案1】:

    如果您使用的是gcc,请尝试添加此行。

    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -save-temps=obj")
    

    【讨论】:

    • 成功了,谢谢朋友!
    • @ZhangZheng 很高兴它有帮助。
    【解决方案2】:

    使用哪个标志取决于您使用的编译器。此外,您应该强烈倾向于将此类特定于编译器和场景的标志从外部注入到构建中,而不是在构建中使用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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 2012-12-11
      • 2012-03-04
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多