Подтвердить что ты не робот

Скомпилировать все файлы C в каталоге в отдельные программы

Есть ли способ использовать GNU Make для компиляции всех файлов C в каталоге в отдельные программы, причем каждая программа называется исходным файлом без расширения .c?

4b9b3361

Ответ 1

SRCS = $(wildcard *.c)

PROGS = $(patsubst %.c,%,$(SRCS))

all: $(PROGS)

%: %.c

        $(CC) $(CFLAGS)  -o [email protected] $<

Ответ 2

Я не думаю, что вам даже нужен make файл - по умолчанию подразумеваемые правила make должны делать это:

$ ls
src0.c  src1.c  src2.c  src3.c
$ make `basename -s .c *`
cc     src0.c   -o src0
cc     src1.c   -o src1
cc     src2.c   -o src2
cc     src3.c   -o src3

Отредактировано, чтобы сделать командную строку немного проще.

Ответ 3

SRCS = $(wildcard *.c)

PROGS = $(patsubst %.c,%,$(SRCS))

all: $(PROGS)

%: %.c
        $(CC) $(CFLAGS) -o [email protected] $<
clean: 
        rm -f $(PROGS)

Улучшение ответа Мартина Бродхерста, добавив "чистую" цель. "make clean" очистит все исполняемые файлы.

Ответ 4

@MartinBroadhurst Привет У меня есть запрос в вашем домене. Не могли бы вы поделиться чатом для обсуждения. Мне нужна помощь в проекте, над которым вы работали.