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

ani*_*mar 1 c gcc codeblocks

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

Mik*_*han 8

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

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

  • 在Code :: Blocks IDE中,导航设置 - > 编译器
  • 确保Selected编译器是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
Run Code Online (Sandbox Code Playgroud)

在编译每个源文件时将被传递到汇编阶段filename.c,$objects_output_dir由项目的对象输出文件目录$file_name替换filename,并替换为,导致汇编器filename.listfilename.o放置的同一目录中生成带注释的列表文件.

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

如果这是一个令人讨厌的问题,你可以通过首先在Code :: Blocks中配置一个"新编译器"来解决它,它是一个GCC的副本,你喜欢什么名字,然后将我所描述的更改应用到这个副本.去做这个:

  • 导航设置 - > 编译器 ;
  • 确保Selected编译器是GCC
  • 选择复制并在提示时输入您选择的名称,例如"gcc-list"