无法使用make编译到单独的目录

时间:2015-09-30 15:40:20

标签: gcc directory makefile

我正在尝试编译到二进制文件目录...如果我直接编译到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)/$@

1 个答案:

答案 0 :(得分:0)

根据@ EtanReisner的评论,将$@更改为%