0

为了编译两个文件,我创建了一个生成文件,用于提及对象名称。

OBJ = led-player_backup.o led-player.o

现在,如果我的文件夹包含 100 个文件,我是否必须在 makefile 中写入 100 个对象的名称。在这种情况下是否可以编写一些模式规则来为所有 *.c 文件制作目标文件。

这是我原来的makefile。为了达到同样的效果,需要修改什么?

# ----------------------------------------------------------------------------
# Makefile for building tapp
#
# Copyright 2010 FriendlyARM (http://www.arm9.net/)
#

ifndef DESTDIR
DESTDIR            ?= /opt/FriendlyARM/tiny6410/linux/rootfs_qtopia_qt4
endif

CFLAGS              = -Wall -O2  # wall is for warning show and 02 is optiminisation level 2
CC                    = arm-linux-gcc   # compiler name
INSTALL             = install         # 

TARGET              = led-player

OBJ = led-player_backup.o led-player.o

#all: $(TARGET) 

all: $(OBJ)


%.o : %.c
    $(CC) $(CFLAGS) $< -o $@

#$< -o $@


install: $(TARGET)
    $(INSTALL) $^ $(DESTDIR)/usr/bin

clean :
    rm -rf *.o $(TARGET)


# ----------------------------------------------------------------------------

.PHONY: $(PHONY) install clean

# End of file
# vim: syntax=make
4

1 回答 1

0

尝试:

OBJ := $(patsubst %.c,%.o,$(wildcard *.c))
于 2013-10-18T15:00:01.020 回答