Eclipse CDT Headless 构建在构建完成后挂起

问题描述 投票:0回答:2

我正在为我们的嵌入式应用程序实现持续集成服务器,该应用程序是使用 GNU-ARM 工具链和 GNU-ARM-ECLIPSE 插件构建的。因此,我需要从服务器上的命令行编译我们的 CDT 项目(我想编译 Debug、Release 和 UnitTests 版本,然后运行测试)。

我计划使用 Eclipse Headless 构建(参见此处)。

我遇到的问题是,构建后,我没有收到提示(在 Windows CMD 或 Powershell 上),因此我无法运行测试。而且,CI 服务器抱怨构建不成功,但一切都构建得很好。如果我在命令完成后终止该命令,我可以运行测试,但是在服务器上时,我无法使用脚本或批处理文件来执行此操作。

事实证明,这是Windows独有的问题,因为在mac或linux上,我没有这个问题。我们的服务器是 TFS 服务器,因此它必须在 Windows 上运行。

此外,它可能与 eclipse 项目的设置方式有关,因为我用基本的 Hello-World 项目尝试过它,并且工作正常。任何提示或帮助将不胜感激。

eclipse eclipse-cdt headless
2个回答
0
投票

我对使用 eclipse 的 STM32CubeIDE 也有同样的问题。 罪魁祸首是在构建后运行的索引器(默默地运行,除非详细运行它)。在我看来,无头构建不需要索引器。 (我在这里的示例中找到了它:https://stackoverflow.com/a/76571159/15307950)。就我而言,无头构建不会永久挂起,但对于中型项目至少需要 20-30 秒,对于小型 hello world 项目至少需要 5 秒。对于更复杂的项目和更慢的 CPU,我想它可能会挂起几分钟。

通过将参数

-no-indexer
添加到命令中,问题就消失了。 对我来说,工作命令是:

C:\ST\STM32CubeIDE_1.11.2\STM32CubeIDE\stm32cubeidec.exe -no-indexer --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data %workspace_folder% -import %PROJECT_DIR% -build %PROJECT_NAME%/%BUILD_TYPE%

对你来说可能是:

eclipse -no-indexer --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data {myWorkspace} -import {myProject} -build "project/target"

-1
投票

我遇到了与您相同的问题,并通过更改选项顺序解决了它(不要问我为什么)。

有你问题的cmd:

eclipse --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data {myWorkspace} -import {myProject} -build "project/target"

对我有用的cmd:

eclipse --launcher.suppressErrors -nosplash -data {myWorkspace} -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import {myProject} -build "project/target"
© www.soinside.com 2019 - 2024. All rights reserved.