我一直在为我的c ++项目使用makefile。但是我尝试将其转换为C并尝试使用gcc进行编译并收到此类错误:make: *** No rule to make target
* .o',microc'. Stop.
需要
这是我的makefile:
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
答案 0 :(得分:2)
您无法使用SOURCES=*.c
。这只是将变量设置为字符串*.c
,因此OBJECTS是字符串*.o
。你想要(假设你正在使用GNU make):
SOURCES := $(wildcard *.c)