如何在Code :: Blocks中生成汇编列表?

时间:2014-01-06 15:59:37

标签: c gcc codeblocks

我们可以在C程序的代码块中生成一个汇编文件,就像我们为微控制器编写C代码时生成列表文件一样吗?

1 个答案:

答案 0 :(得分:8)

我认为你希望你的Code :: Blocks构建生成一个带注释的 编译的每个.c源文件的汇编列表。

是的,你可以这样做(从Code :: Blocks 12.11开始):

  • 在Code :: Blocks IDE中,导航设置 - > 编译器
  • 确保选定的编译器是GCC。
  • 在开始编译器设置链接器设置 ...的标签列表中, 导航到最后一个标签其他设置
  • 其他设置窗格中,选择右下角的高级选项
  • 高级编译器选项窗口中,确保下拉菜单 标题为命令的设置为将单个文件编译为目标文件
  • 请参阅名为命令行宏的编辑框并确认 包含以下行:

    $ compiler $ options $包括-c $ file -o $ object

  • 在此行后面添加一个空格,后跟以下内容:

    -Wa,-alhds = $ $ objects_output_dir file_name.list

  • (不要让自己在这一点上被误导 窗口左侧的命令宏。如果它列出$objectsoutputdir 它代替$objects_output_dir$filename而不是$file_name 是错的。)

  • 点击高级编译器选项窗口中的OK,然后点击 编译器设置窗口。
  • 重建您的项目。

您对全局编译器设置所做的更改的影响 是选项:

-alhds=$objects_output_dir$file_name.list
编译每个源文件filename.c时,

将被传递到汇编阶段, 将$objects_output_dir替换为项目的对象输出文件目录 并$file_name替换为filename,导致汇编程序生成 带注释的列表文件filename.list位于放置filename.o的同一目录中。

不幸的是,我不知道如何为选定的项目做这件事;所以之后 编译器将为所有项目生成.list文件。

如果这是一个令人讨厌的问题,您可以通过首先配置“新编译器”来解决它 在Code :: Blocks中,它是GCC的副本,具有您喜欢的任何名称,然后应用 我对这个副本所描述的变化。要做到这一点:

  • 导航设置 - > 编译器;
  • 确保所选编译器是GCC
  • 选择复制,然后在系统提示时输入您选择的名称,例如: “GCC-列表”