【发布时间】:2018-05-13 15:25:30
【问题描述】:
我有以下项目结构(使用eclipse)
project/
|____ inc/
| |___ config_prog.h
| |___ prog_lib.h
|
|____ data/
| |___ img.bmp
|
|__ prog_lib.c
|__ main.c
|__ makefile
我制作了以下makefile:
CC=gcc
CFLAGS= -O0 -c -Wall -mavx2 -mfma
LDFLAGS=
SOURCES=$ main.c inc/prog_lib.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=main
all: $(TASKMAP) $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@ -lm
.c.o:
$(CC) $(CFLAGS) $< -lm -o $@
clean:
rm -fr $(OBJECTS) $(EXECUTABLE)
但是当我尝试构建项目时出现以下错误:make: *** No rule to make target 'inc/prog_lib.c', needed by 'all'. Stop.
谁能告诉我问题所在?
【问题讨论】:
-
问题是
SOURCES=$ main.c inc/prog_lib.c,应该是SOURCES=$ main.c prog_lib.c。 -
...在您将
-Iinc传递给编译器之前,您可能会在查找头文件时遇到问题,我相信您在尝试构建这些文件时会发现命令行。