You need to enable JavaScript to run this app. 如何扩展Makefile使GCC同时生成.s汇编文件与可执行二进制
优惠活动
大模型
产品
解决方案
定价
更多

如何扩展Makefile使GCC同时生成.s汇编文件与可执行二进制

可实现对应需求,直接在原有Makefile基础上扩展即可

首先修正原有配置的一处常见笔误:你当前配置里的CLFAGS为拼写错误,正确的编译参数变量名为CFLAGS,不修正的话设置的-Wall警告、-g调试参数不会正常传递给GCC。

扩展后的完整Makefile配置

CC=gcc
# 原有编译参数,修正拼写错误
CFLAGS=-Wall -g
# 汇编生成专属参数:输出.s格式、指定intel语法
ASM_FLAGS=-S -masm=intel

# 全量构建目标,同时依赖可执行文件和汇编文件
all: file.out file.s

# 从C源文件生成对应汇编的构建规则
file.s: file.c
	$(CC) $(ASM_FLAGS) $< -o $@

clean:
	# 清理时同时删除两类生成产物
	rm -f file.out file.s

配套说明

  • 执行make指令时,无需额外操作就会同步生成两个文件:
    • 带调试信息、开启全量编译警告的file.out可执行二进制
    • 与你手动执行gcc -S -masm=intel file.c效果完全一致的intel格式file.s汇编文件,可直接用于研读编译器生成的汇编逻辑
  • 如果习惯原有可执行文件的命名(不带.out后缀),只需要把配置里所有的file.out替换为file即可,逻辑完全不变
  • 执行make clean时,会同时清除可执行文件和汇编文件,不会残留冗余构建产物

新手高频踩坑提醒:Makefile中规则下方的命令行(比如调用gcc生成汇编的那行)开头必须用Tab字符缩进,不能用普通空格,否则make会抛出语法错误。


内容的提问来源于stack exchange,提问作者xbufu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 00:54:03