我使用cmake,假设我有一个。cpp文件。是否可以在cmake中首先将此cpp文件编译为汇编代码,然后执行一些其他操作,然后从生成的汇编创建可执行文件?
更新:我想把Hello。cpp编译成Hello。S(稍后修改它,然后创建目标文件)。然而,我不能生成asm文件与该代码(它只是创建一个Hello。静态库):
add_library(Tutorial Hello.cpp)
set_target_properties(Tutorial PROPERTIES COMPILE_FLAGS "-S")
install (TARGETS Tutorial DESTINATION bin)
CMake总是为你生成"汇编文件规则"。比如你有:
file(WRITE main.cpp "int main() { return 0; }")
add_executable(MyMain main.cpp)
对于目标main.s
或main.cpp.s
,可以调用make
,如:
> make main.cpp.s
Compiling CXX source to assembly CMakeFiles/MyMain.dir/main.cpp.s
但是如果你想自动化一切,看看我的答案在你的另一个问题:
- 在cmake 中生成asm文件后调用shell命令
您可以告诉GCC只使用-S
选项生成程序集。
您也可以告诉GCC将中间文件保存在-save-temps
.