我想做的就是将工作目录更改为“初始化”并编译我的程序(首先)。
OBJS = main.o create_queue.o
SOURCE = main.c create_queue.c
HEADER = create_queue.h
OUT = initialization
CC = gcc
FLAGS = -g -c
LIBS = -lpthread
# -g option enables debugging mode
all:
$(MAKE) -C initialization all
$(CC) -o $(OUT) $(SOURCE) $(LIBS)
# clean house
clean:
rm -f $(OBJS) $(OUT)
# do a bit of accounting
count:
wc $(SOURCE) $(HEADER)
所以使用上面的makefile我得到了这个错误:
vasilis@ubuntu:~/Vassilios$ make
make -C initialization all
make[1]: Entering directory `/home/vasilis/Vassilios/initialization'
make[1]: *** No rule to make target `all'. Stop.
make[1]: Leaving directory `/home/vasilis/Vassilios/initialization'
make: *** [all] Error 2
假设我正常工作,我想将可执行文件从“初始化”文件夹移动到父文件夹(Vassilios),并为另外两个位于父文件夹的文件夹重复此过程。这些文件夹当然有不同的文件源。谢谢你。
答案 0 :(得分:0)
如果查看initialization
目录中的makefile,您会发现它没有all
目标。
运行$(MAKE) -C initialization all
告诉make:使用当前工作目录initialization
启动一个新的make进程,并告诉make进程构建all
。那个make进程失败了,因为initialization
中的makefile不知道如何构建all
。