在makefile中生成汇编文件

Posted

技术标签:

【中文标题】在makefile中生成汇编文件【英文标题】:Generation of assembly file in makefile 【发布时间】:2014-02-04 01:17:46 【问题描述】:

我想修改 makefile 以生成所有的程序集文件。 make文件如下:

# Compiler and Linker

CC           := gcc
LD           := gcc

# 标准库

CFLAGS_STD := -g -std=gnu99 \ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \ -Wall -Wno-未使用的参数 LDFLAGS_STD := -lm

# glib

CFLAGS_GLIB  := `pkg-config --cflags glib-2.0 gmodule-2.0`
LDFLAGS_GLIB := `pkg-config --libs glib-2.0 gmodule-2.0 gthread-2.0 gobject-2.0`

%.o: %.c %.h
@echo "    [$@]"
$(CC) $(CFLAGS) -c $< 


  CFLAGS = $(CFLAGS_STD) $(CFLAGS_GLIB)


LDFLAGS = $(LDFLAGS_STD) $(LDFLAGS_GLIB) 


OPTTREE_OBJS =  opttree.o \
        optsystem.o \
    optmain.o \
    kdtree.o

OPTTREE=./rrtst
OPTTREE_DEPENDENCIES:=$(OPTTREE_OBJS) $(LDFLAGS_COMMON)

all: $(OPTTREE) 


$(OPTTREE): $(OPTTREE_DEPENDENCIES)
        $(CC) -g -o $@ $(OPTTREE_OBJS) $(LDFLAGS) $(CFLAGS) 


clean:
    rm -f *.o *.a *~ $(OPTTREE) $(OPTSYSTEM_TEST)

请帮帮我。

问候,

帕万

【问题讨论】:

-S 标志传递给您的编译器。并添加rm -f *.s 感谢重播。我对应该在哪里传递 -S 标志感到困惑?我可以通过修改 CFLAGS_STD := -g -S -std=gnu99 \ 来生成除 optmain.s 之外的三个程序集文件 【参考方案1】:

任意添加

-S

到您的 CFLAGS= 行的末尾,或

CFLAGS += -S

Makefile 中的其他位置,在你击中你想要的目标之前 获取汇编输出。

【讨论】:

以上是关于在makefile中生成汇编文件的主要内容,如果未能解决你的问题,请参考以下文章

在单独的文件夹中生成依赖文件

Makefile第十课:Makefile编译

协议缓冲区文件的 Makefile 自动依赖关系问题

用MAKEFILE编译汇编代码常见错误

在 Makefile 中处理汇编文件 - 包含语句问题?

为啥在 makefile 中不生成依赖项?