【发布时间】:2018-12-18 23:49:39
【问题描述】:
在我的项目中,我有目录结构/libs 和/src。我想创建makefile,其中main 依赖于/libs。 IE。头文件在/libs。我使用了以下
#Compiler to use
CC=gcc
#Compiler flags to use
CFLAGS=-c -Wall
BUILD = ./build
SRC = ./src
LIBS = ./libs
SOURCES = $(SRC)/main.c $(SRC)/SmallComponent1.c $(SRC)/SmallComponent2.c $(LIBS)/ExtLib.c
OBJECTS = $(SOURCES: .c=.o)
EXECUTABLE = $(BUILD)/appl.exe
all: $(OBJECTS) $(EXECUTABLE)
$(BUILD):
mkdir $(BUILD)
$(EXECUTABLE) : $(OBJECTS)
$(CC) $(OBJECTS) -o $@
.c.o:
$(CC) $(CFLAGS) -I$(LIBS) $< -o $@
phony: clean
clean:
rm $(BUILD)/*.o $(BUILD)/appl.exe
问题是:如果不存在/build,我该如何创建?以及如何在$(CC) $(CFLAGS) -I$(LIBS) $< -o $@ 中包含外部.h,因为-I$(LIBS)
不起作用,我收到以下错误./src/main.c:4:20: fatal error: ExtLib.h: No such file or directory
【问题讨论】:
-
我无法重现您的错误。您使用的是哪个版本的 Make?