【发布时间】:2020-05-22 15:25:44
【问题描述】:
我是 MaKefile 的菜鸟,最近一直在学习。
但是,当我尝试在终端上运行 make 命令时遇到了麻烦。
这是我的 Makefile:
CC = g++
CFLAGS = -g -Wall
bin = ./bin/
makedir:
@echo "build ./bin"
mkdir $(bin)
all: algo
OBJS = $(patsubst %.o, $(bin)%.o, BB.o BF.o method.o algo.o)
algo: BB.o BF.o method.o algo.o
$(CC) -o algo $(OBJS)
BB.o: BB.cpp
$(CC) $(CFLAGS) -c $^ -o $(bin)$@
BF.o: BF.cpp
$(CC) $(CFLAGS) -c $^ -o $(bin)$@
method.o: method.cpp
$(CC) $(CFLAGS) -c method.cpp -o $(bin)$@
algo.o: algo.cpp method.hpp
$(CC) $(CFLAGS) -c algo.cpp -o $(bin)$@
clean:
-rm -f $(bin)*
-rmdir $(bin)
-rm -f algo
我试图将目标文件放在bin 目录中。
但是,终端只显示:
build ./bin
mkdir bin
这就是问题所在。只创建了一个名为bin 的空目录。
在mkdir 命令之后似乎没有做任何事情。
更多详情,这是我运行make命令前的目录结构:
├── algo.cpp
├── BB.cpp
├── BF.cpp
├── Makefile
├── method.cpp
├── method.hpp
我对此一无所知,并试图找到任何方法来解决它但无济于事。 顺便说一句,我也是 Stackoverflow 的菜鸟。 如果我没有很好地提问,请告诉我,我会变得更好。非常感谢!
【问题讨论】:
-
我猜第一行的
iCC是一个错字。使用 vi? -
是的。我用 vim 编辑了 Makefile。