从命令行构建多个 CDT C++ 项目
Posted
技术标签:
【中文标题】从命令行构建多个 CDT C++ 项目【英文标题】:Build several CDT C++ projects from commandline 【发布时间】:2010-09-25 13:54:33 【问题描述】:的最佳解决方案是什么?这些项目有引用,因此不可能只构建单个项目。
【问题讨论】:
你考虑过使用Make吗? Make 使用 CDT 在构建时生成的 .mk 文件。所以不可能从头开始构建项目。 我认为这是 Eclipse 的一大弱点。无头构建不是 Eclipse 世界中的一等公民。 【参考方案1】:此功能已添加到 CDT 6 中(最终版本将于 2009 年 6 月 15 日到期)。您可以从构建页面下载最终候选版本:download.eclipse.org/tools/cdt/builds/6.0.0/。
使用 Eclipse 3.5 + CDT 6 版本,您可以使用在命令行发送到 Eclipse 的以下选项导入、构建和清理构建项目和工作区:
eclipse -nosplash
-application org.eclipse.cdt.managedbuilder.core.headlessbuild
-import [uri:/]/path/to/project
-build project_name | all
-cleanBuild projec_name | all
在 Windows 上,使用 eclipsec.exe
而不是 eclipse.exe
将构建输出写入 stdout/stderr,以便调用阻塞直到完成。
“-application”开关指示 Eclipse 运行 CDT 无头构建器,而不是启动工作台。其他开关可以单独使用或一起使用。这意味着您可以使用自己的 shell 脚本签出项目,将其“-import”到工作区,并使用 Managedbuilder 的无头构建器“-build”。
使用'-data'开关来指定要使用的工作空间,可以是一个空的临时目录,平台运行时支持的其他开关见运行时文档: help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html
有关已提交功能的更多详细信息,请参阅bug 186847 comment 24 及以后的内容。
【讨论】:
此外,您可以指定单个配置:-build project_name[/config_name] | all
示例:-build project_name/Release
【参考方案2】:
在 CDT 6 之前,您可以使用 JDT 的 AptBuilder(例如包含在经典 Eclipse 中)。
这使您可以构建已配置的工作区。所以你:签出你的源代码,配置一个指向签出项目的工作区。然后,您的自动构建脚本可以更新检出并运行 AptBuilder,而无需启动 GUI。
【讨论】:
【参考方案3】:如果您在 CDT 下创建了 Make 项目,您可以使用您喜欢的 shell 并在所有项目目录中执行 make。
【讨论】:
这是您问题的答案。你需要“弄乱Makefiles”。 Eclipse 不是构建系统。 @Jesse:这只是一半的答案。如果我写的是我们的项目不是 Make 项目,这也不是一个答案。因为改变问题的先决条件并不是问题的答案。 @JesseWeigert 评论的新 URL 是:blog.codinghorror.com/the-f5-key-is-not-a-build-process【参考方案4】:目前不支持使用管理构建器进行无头构建,请参阅bug 186847 - CDT internal builder does not support automated command line builds。
如果您使用非托管(make)构建器,那么您已经拥有可以从命令行使用的 Makefile。
【讨论】:
这不再是真的。该错误已修复。【参考方案5】:我们在现有的构建中这样做。
在所有外部引用和顶层项目中放置一个生成文件。 在您的“全部”规则中,让它运行: 使 -C ./externalref1 使 -C ./externalref2 等等
我们实际上在一个变量中定义了外部依赖项: EXT_DEP = 外部参考 1 外部参考 2 然后使用 subst(替代)命令使用正确的调用启动所有子制作。
【讨论】:
以上是关于从命令行构建多个 CDT C++ 项目的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2019:使用 vcvars64.bat 从命令行构建 C++ 不再起作用
如何从命令行为 Borland C++ Builder 5 构建项目文件和包?
如何自动化(从命令行)安装 Visual Studio Build Tools 构建环境,适用于 C++、.NET、C# 等