我正在使用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)
答案 0 :(得分:2)
CMake总是生成"汇编文件规则"为了你。所以,让我们说你有:
file(WRITE main.cpp "int main() { return 0; }")
add_executable(MyMain main.cpp)
您可以针对目标make
或main.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
保留中间文件。