gpt4 book ai didi

makefile - 规范 'simple project' 生成文件

转载 作者:行者123 更新时间:2023-12-05 08:02:27 24 4
gpt4 key购买 nike

您的小型 C/C++ 项目已经到了无法将所有代码放在一个文件中的地步。你想拆分几个组件。所以你做了一个src/目录,然后……你必须写一个真正的 Makefile。不止 hello: hello.o .呃……是吗$@$<$^ ?废话。你不记得(我从来不记得)。

您是否有一个“一刀切”的简单 Makefile 可以处理简单的源代码树?如果有,里面有什么,为什么?我正在寻找最小、最简单的 Makefile,它可以很好地编译一个充满 C 文件的目录,而无需在每次添加文件时都编辑 Makefile。这是我到目前为止所拥有的:

CXX = clang++
CXXFLAGS = ...
LDFLAGS = ...
EXENAME = main

SRCS = $(wildcard src/*.cc)
OBJS = $(patsubst src%.cc,build%.o, $(SRCS))

all: $(EXENAME)

build/%.o: src/%.cc
@mkdir -p $(dir $@)
$(CXX) -c -o $@ $^ $(CXXFLAGS)

$(EXENAME): $(OBJS)
$(CXX) -o $@ $^ $(LDFLAGS)

clean:
rm -rf $(EXENAME) build/

这个 Makefile 构建了所有 .cc src/ 中的文件目录进入 .o build/ 中的文件目录,然后将它们链接到父目录。

您会采取哪些不同的做法?

最佳答案

我会重新考虑您不提供明确来源列表的决定——我认为从长远来看这可能会给您带来麻烦。但如果那是你的决定,那么这个 makefile 非常好。

%.o规则我会使用 $<而不是 $^ ,以便稍后您可以添加依赖项,例如

build/foo.o: bar.h

准备就绪后,您可以查看 Advanced Auto-Dependency Generation .

关于makefile - 规范 'simple project' 生成文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500790/

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