make -t 命令的主要原因是什么?
What's the main reason for make -t command?
在回复了2010年的一个post之后出错(link给它:What does it mean to 'touch' a target in make?),作为C编程的新生,我想了解一些东西语言,最近学习了makefile,make命令等等。我有一个关于 class 的问题,关于 make -t
命令的作用,以及我为什么要使用它(或不使用它)。
我知道 make -t
只创建文件(相关文件,来自我的 makefile 命令和完整脚本)。但我为什么要使用它呢?
我的意思是,如果它只是为我创建文件,而实际上没有对它做任何事情 - 何必呢?
(我正在使用 Ubuntu 20.04.4 LTS,gcc 进行编译,并用 C 语言编写我的代码)
正如评论中提到的,你应该永远不要使用它。
它在非常有限的情况下“有用”,例如:您知道您的整个构建是正确的并且是最新的,然后发生了一些事情,使您的文件上的时间戳变得一团糟。也许某个工具进入并调整了每个文件中的注释(也许某些东西改变了每个文件中的版权年份),或者你可能将构建树复制到某处但忘记保留修改时间,或者其他什么。
然后您可以运行 make -t
“恢复”文件的相对时间戳,这样 make 就知道所有内容都是最新的,而无需实际构建任何内容。
在构建速度很慢并且有更多机会弄乱时间戳的那一天,也许这更有用。
现在最好只 运行 make
而没有 -t
:是的,你必须重建一堆文件,但这比确保 make
安全得多你知道一切都是最新的,当你可能错了。
在回复了2010年的一个post之后出错(link给它:What does it mean to 'touch' a target in make?),作为C编程的新生,我想了解一些东西语言,最近学习了makefile,make命令等等。我有一个关于 class 的问题,关于 make -t
命令的作用,以及我为什么要使用它(或不使用它)。
我知道 make -t
只创建文件(相关文件,来自我的 makefile 命令和完整脚本)。但我为什么要使用它呢?
我的意思是,如果它只是为我创建文件,而实际上没有对它做任何事情 - 何必呢?
(我正在使用 Ubuntu 20.04.4 LTS,gcc 进行编译,并用 C 语言编写我的代码)
正如评论中提到的,你应该永远不要使用它。
它在非常有限的情况下“有用”,例如:您知道您的整个构建是正确的并且是最新的,然后发生了一些事情,使您的文件上的时间戳变得一团糟。也许某个工具进入并调整了每个文件中的注释(也许某些东西改变了每个文件中的版权年份),或者你可能将构建树复制到某处但忘记保留修改时间,或者其他什么。
然后您可以运行 make -t
“恢复”文件的相对时间戳,这样 make 就知道所有内容都是最新的,而无需实际构建任何内容。
在构建速度很慢并且有更多机会弄乱时间戳的那一天,也许这更有用。
现在最好只 运行 make
而没有 -t
:是的,你必须重建一堆文件,但这比确保 make
安全得多你知道一切都是最新的,当你可能错了。