使用scons时如何保存程序集文件?

问题描述

当我在Sconstruct中使用<div class="ql-container ql-sNow" style="border-width: 0;"> <div class="ql-editor" [innerHTML]="byPassedHTMLString"> </div> </div> 之类的命令时,它将生成$output.text += "Service ID: " + $id + "`r`n" + "Service Name: " + $serviceName + "`r`n" + "Service Value: " + $newValue + "`r`n" 文件env.Program('hello','spectre_full.c')可执行文件

  1. 但是我想知道它的汇编代码,如何设置它以保留汇编代码
  2. 该.o文件的用途是什么? .o文件是否用于确定两代产品是否已更改?

解决方法

通常来说,编译器本身将在内部生成汇编代码,并使用该代码来构建.o。

几乎所有带.c的编译器生成一个可执行文件时,都会为所有.c文件生成一个中间.o。

SCons知道程序需要.o如此有效地做到这一点:

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

取决于您的特定编译器,可能会有一个命令行标志使它生成而不删除汇编程序文件。 一旦弄清楚了,就可以通过

将其添加到您的SConstruct中。
env.Append('CFLAGS','-whatever your flag is')

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