gpt4 book ai didi

makefile - Makefile 如何使用单独的目录来存放源代码和二进制文件?

转载 作者:行者123 更新时间:2023-12-02 16:52:39 30 4
gpt4 key购买 nike

我希望能够将我的 bin 和代码文件拆分到单独的目录中,因为在当前状态下管理起来变得困难。

我理想中希望拥有

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,但我不想这样做。

最佳答案

你就快到了...

#Current make system
BIN=./bin/
SOURCE=./source/

LIST=$(BIN)/program1 $(BIN)/program2...

all: $(LIST)

$(BIN)/%: $(SOURCE)%.cpp
$(CC) $(INC) $< $(CFLAGS) -o $@ $(LIBS)

您还可以使用以下内容使LIST更容易

PROG=program1 program2
LIST=$(addprefix $(BIN)/, $(PROG))

关于makefile - Makefile 如何使用单独的目录来存放源代码和二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9178285/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com