gpt4 book ai didi

c++ - Makefile 只跟踪第一个文件

转载 作者:行者123 更新时间:2023-11-27 22:41:28 25 4
gpt4 key购买 nike

我的 makefile 中有两个 .cpp 文件:

test1.o : test1.cpp
g++ test1.cpp -o test1.o

test2.o : test2.cpp
g++ test2.cpp -o test2.o

在我对 test1.cpp 和 test2.cpp 都进行了更改并在命令行中键入 make 之后,只有 test1.o 被重新编译,没有做任何事情test2.o.

但是,如果我交换 makefile 中的两个 block ,test2.o 将自动重新编译,而 test1.o 则不会。

我的 makefile 似乎只跟踪第一个文件。我想知道哪一部分出了问题。

最佳答案

默认情况下,make 将构建 makefile 中的第一个东西,如果您不告诉它要构建什么的话。

您可以运行 make test1.o test2.o 来专门制作两者,或者添加一个假目标,以便它默认制作 all - 这是很多生成文件使用。

使用 .PHONY 告诉 Make all 不是一个真正的文件,所以它不会在你有一个名为 all< 的文件时出现错误 出于某种原因。

all: test1.o test2.o
.PHONY: all

关于c++ - Makefile 只跟踪第一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48677548/

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