我希望能够将我的二进制文件和代码文件分成不同的目录,因为在当前状态下管理变得困难。
理想情况下,我希望有
project_dir
|-Makefile
|-run_tests.sh
|
|__source
| |-program1.cpp
| |-program2.cpp
|
|__bin
|-program1
|-program2
然而,我无法在当前系统中使其工作,而不必手动为每个程序编写规则(请注意,每个程序都是单独的程序,而不是一系列链接在一起的对象)。
#Current make system
BIN=./bin/
SOURCE=./source/
LIST=program1 program2...
all: $(LIST)
%: $(SOURCE)%.cpp
$(CC) $(INC) $< $(CFLAGS) -o $(BIN)$@ $(LIBS)
这个代码有效,但是它不能在当前路径中找到目标,因此它会认为即使源文件没有改变,也需要重新构建二进制文件。
我现在唯一的想法是编写一个程序来生成makefile,但我不想这样做。