如何在命令行中构建多个CDT C++项目的最佳解决方案?这些项目存在引用关系,因此无法单独构建单个项目。
如何在命令行中构建多个CDT C++项目的最佳解决方案?这些项目存在引用关系,因此无法单独构建单个项目。
此功能在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 并且调用在完成之前被阻塞。-build {project_name[/config_name] | all}
例如:-build project_name/Release
。 - Alejandro Blasco在 CDT 6 之前,您可以使用 JDT 的 AptBuilder(例如包含在经典 Eclipse 中)。
这使您可以构建已配置的工作区。因此,您可以:检出源代码,配置指向已检出项目的工作区。然后,您的自动化构建脚本可以更新检出并运行 AptBuilder,而无需启动 GUI。
目前不支持使用管理构建器进行无头构建,请参见bug 186847 - CDT内部构建器不支持自动化命令行构建。
如果您使用未管理的(make)构建器,则已经有了可以从命令行使用的Makefile。
我们在现有的构建中执行此操作。
在所有外部引用和顶级项目中放置一个 makefile。 在您的“all”规则中,让它运行: make -C ./externalref1 make -C ./externalref2 等等
实际上,我们将外部依赖项定义为变量: EXT_DEP = externalref1 externalref2 然后使用 subst(替换)命令以正确的调用启动所有子 make。