从命令行构建多个 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 项目?

从命令行构建 Eclipse Java 项目

如何自动化(从命令行)安装 Visual Studio Build Tools 构建环境,适用于 C++、.NET、C# 等

xcode 8 xcodebuild 从命令行对多个配置文件进行手动代码签名