【问题标题】:Is use of `make` meaningful when using VS Code?使用 VS Code 时使用“make”有意义吗?
【发布时间】:2021-11-01 15:44:41
【问题描述】:

在使用 VS Code 时,您可以使用 make 执行的操作也可以使用 tasks.json 完成,并且 make 未预装在 Windows 上。如果可以强制使用各种操作系统的团队使用 VS Code,还有什么理由使用make

【问题讨论】:

  • you can do with make can be done with tasks.json 不正确,您无法使用仅tasks.json 的 100 个 C++ 文件构建应用程序
  • @rioV8 你能详细说明一下吗?
  • 为什么我需要详细说明,我有一个包含 100 个 C++ 文件的项目,由应用程序和几个由此构建的库组成,你应该告诉我如何使用 tasks.json 构建它/跨度>
  • 不知道你是怎么用make的,告诉我一个tasks.json做不到的部分。我猜你使用了很多命令来构建,但我不熟悉 C++。
  • 那么如果你不熟悉 C++ 并且 make 为什么说 make 可以做哪些任务可以做呢?如果你有超过 1 个 C++ 文件 tasks.json 是没用的。任何严肃的应用程序都有超过 1 个 C++ 文件,尽管我知道一个有用的 0-MQ 应用程序只有 1 个 C++ 文件。竞争性编程不是严肃的编程

标签: visual-studio-code makefile vscode-tasks


【解决方案1】:

从表面上看,您可以使用 Makefile 或 tasks.json 来执行各种 shell 脚本。使用 tasks.json 的属性 dependsOn,您可以执行 Makefile 也可以执行的拓扑排序任务。

make 还是比tasks.json 做得更好:

  1. make 可以检查文件的时间戳以查找哪些文件已过期以及不需要执行哪些任务。也许您可以使用tasks.json 中的各种shell 脚本来做到这一点,但使用Makefile 会方便得多。对于具有大量源代码的大型项目,这是一个非常棒的功能,因为您可以节省大量时间,而无需重新构建 100 多个您不需要的文件。

  2. make 包含一个接口引擎,支持后缀规则并支持通配符。我不认为tasks.json 支持这一点。您可能可以使用一些额外的 shell 脚本来实现相同的目的,但它不会像 make 那样简洁。

  3. 最后,Makefile 可以在任何具有make 的系统中运行,因此它独立于 VS Code。

如果您正在处理一个足够小/足够简单的项目,那么您完全可以不使用make 来处理它。对于大型项目,make 是明智的选择。

在我的大学项目中,我们使用的是 Makefile。我们在 VS Code 上工作,因此我们将 tasks.json 脚本设置为仅使用带有上述 Makefile 的 make 命令。如果你愿意,你也可以这样做。

【讨论】:

  • 你完全涵盖了我想知道的所有事情。完全明白了,非常感谢!
  • @Takuy​​aHARA 很高兴为您提供帮助
猜你喜欢
  • 2011-10-04
  • 2018-10-06
  • 1970-01-01
  • 2010-12-31
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-07
相关资源
最近更新 更多