从命令行构建多个 CDT C++ 项目的最佳解决方案是什么?这些项目有参考,因此不可能只构建单个项目。
5 回答
此功能已在 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
有关已提交功能的更多详细信息,请参阅错误 186847 评论 24及以后。
在 CDT 6 之前,您可以使用 JDT 的AptBuilder(例如包含在经典 Eclipse 中)。
这使您可以构建已配置的工作区。所以你:签出你的源代码,配置一个指向签出项目的工作区。然后,您的自动构建脚本可以更新检出并运行 AptBuilder,而无需启动 GUI。
当前不支持使用管理构建器进行无头构建,请参阅错误 186847 - CDT 内部构建器不支持自动命令行构建。
如果您使用非托管(make)构建器,那么您已经拥有可以从命令行使用的 Makefile。
如果您在 CDT 下创建了 Make 项目,您可以使用您最喜欢的 shell 并在所有项目目录中执行 make。
我们在现有版本中执行此操作。
在所有外部引用和顶级项目中放置一个生成文件。在您的“全部”规则中,让它运行: make -C ./externalref1 make -C ./externalref2 等
我们实际上在一个变量中定义了外部依赖项:EXT_DEP = externalref1 externalref2 然后使用 subst(替代)命令使用正确的调用启动所有子制作。