c++ - cmake生成汇编文件然后编译成可执行文件

标签 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)

最佳答案

CMake 总是会为您生成“程序集文件规则”。假设您有:

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

您可以为目标 main.smain.cpp.s 调用 make,例如:

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

但是如果你想自动化一切,请看我在你的另一个问题上的回答:

关于c++ - cmake生成汇编文件然后编译成可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329823/

相关文章:

c++ - 推导(非类型)模板参数类型的编译器方差

c++ - 如何加载(mov)一个类变量到cpu寄存器

c++ - 你能解释一下这段代码吗?

c++ - 将静态成员函数作为模板参数传递

c++ - std::partial_sum 和 std::inclusive_scan 有什么区别?

assembly - 为什么循环不递减 cx 寄存器?

c - 将 FOR 翻译成汇编程序

java - JNI 检测到应用程序错误 : use of deleted weak global reference

gcc - GNU 标准库命名约定

c - 该机器代码如何防止缓冲区溢出?