首页 > 解决方案 > 使用scons时如何保存汇编文件?

问题描述

当我使用env.Program('hello','spectre_full.c')Sconstruct 中的命令时,它会生成spectre_full.o文件和hello可执行文件。

  1. 但是我想知道它的汇编代码,我应该如何设置它以保留汇编代码。
  2. 这个.o文件有什么用?这个.o文件是用来判断两代是否发生变化的吗?

标签: scons

解决方案


一般来说,编译器本身会在内部生成汇编代码并使用它来构建.o。

几乎任何编译器在提供 .c 以生成可执行文件时都会为所有提供的 .c 文件生成中间 .o。

SCons 知道程序需要 .o,因此可以有效地做到这一点:

env.Program('hello',env.Object('spectre_full.c'))

根据您的特定编译器,可能有一个命令行标志可以让它生成而不是删除汇编文件。一旦你弄清楚了,你可以通过

env.Append('CFLAGS','-whatever your flag is')

或者

env.Program('hello','spectre_full.c', CFLAGS="$CFLAGS -whatever your flag is") 

推荐阅读