cmake生成汇编文件,然后将其编译为可执行文件

时间:2016-10-30 13:50:10

标签: c++ gcc assembly cmake

我正在使用cmake,假设我有一个.cpp文件。 是否可以在cmake中首先将此cpp文件编译为汇编代码,然后执行其他操作,然后从生成的汇编中创建可执行文件?

更新: 所以基本上我想将Hello.cpp编译为Hello.s(稍后修改它,然后创建目标文件)。但是我无法使用该代码生成asm文件(它只是创建一个Hello.a静态库):

add_library(Tutorial Hello.cpp)
set_target_properties(Tutorial PROPERTIES COMPILE_FLAGS "-S") 
install (TARGETS Tutorial DESTINATION bin)

2 个答案:

答案 0 :(得分:2)

CMake总是生成"汇编文件规则"为了你。所以,让我们说你有:

file(WRITE main.cpp "int main() { return 0; }")
add_executable(MyMain main.cpp)

您可以针对目标makemain.s致电main.cpp.s,如:

> make main.cpp.s
Compiling CXX source to assembly CMakeFiles/MyMain.dir/main.cpp.s

但如果您想自动化所有内容,请在其他问题上查看我的回答:

答案 1 :(得分:0)

您可以告诉GCC仅使用-S选项生成程序集。

您还可以告诉GCC使用-save-temps保留中间文件。