0

我一直在为我的 c++ 项目使用 makefile。但是我尝试将其转换为 C 并尝试使用 gcc 进行编译并得到这样的错误:make: *** No rule to make target*.o',需要microc'. Stop.

这是我的生成文件:

CC=gcc
CFLAGS=-c -std=gnu99 -Wall -pedantic
LDFLAGS=
SOURCES=*.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=microc

all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS) 
    $(CC) $(LDFLAGS) $(OBJECTS) -o $@

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

clean:
    rm -rf *o microc
4

1 回答 1

2

你不能使用SOURCES=*.c. 这只是将变量设置为字符串*.c,因此 OBJECTS 就是字符串*.o。您想要(假设您使用的是 GNU make):

SOURCES := $(wildcard *.c)
于 2013-04-30T13:44:20.907 回答