我正在尝试编译到二进制文件目录...如果我直接编译到root,一切正常。起初,我试图让gcc通过在-o标志下传递bin /来处理它。 Make(令人愤怒的)只是从目标中删除路径并编译到根目录...
然后我尝试让make自己处理它,但现在它找不到编译任何东西的规则。
我尝试的另一件事是添加:
$(OBJECTS):
到第一个规则,但是然后只调用gcc而没有参数。
这是我让make处理路径的版本:
CC = gcc
DIR = bin
TARGETS = cloud controller
OBJECTS = $(addprefix $(DIR)/, $(TARGETS))
all: $(OBJECTS)
$(DIR)/%: $@.c
$(CC) $< -o $@
$(DIR):
mkdir $(DIR)
这是我让gcc处理路径的版本:
CC = gcc
DIR = bin
TARGETS = cloud controller
all: $(TARGETS)
mkdir $(DIR) -p
%: $@.c
$(CC) $< -o $(DIR)/$@