STM32CubeIDE 终止前的无头构建延迟
Posted
技术标签:
【中文标题】STM32CubeIDE 终止前的无头构建延迟【英文标题】:STM32CubeIDE headless build delay before terminating 【发布时间】:2021-08-27 05:19:42 【问题描述】:我在自动构建管道中使用 STM32CubeIDE 无头构建。构建命令本身的格式如下:
stm32cubeidec.exe --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data <folder> -import <project> -build <project>/Release
这很好用,但我注意到构建本身需要大约 15 秒,但之后命令需要 1 到 2 分钟才能退出。这很烦人,因为它使构建过程花费的时间比必要的长得多。
我尝试直接从命令行运行命令,并在两台不同的计算机上计算运行时间。结果类似这样:
...
09:30:11 Build Finished. 0 errors, 0 warnings. (took 15s.99ms)
real 2m25.843s
大约 20 秒后打印“构建完成”消息,此时输出二进制文件已生成,但命令仅挂起几分钟。不显示任何错误消息。
【问题讨论】:
【参考方案1】:在自动构建过程中,每个构建都在干净的环境中开始。在命令行上重复构建时,我发现只有在重复相同的构建时才观察到第一个构建的延迟。此外,在“data”文件夹中生成了一个.metadata
文件夹。在构建之前删除该文件夹会使延迟再次发生。因此延迟似乎是由于信息被缓存到.metadata
文件夹中。
原来有一个选项 -no-indexer
带有模糊的描述“禁用索引器”。应用此选项也消除了干净构建的延迟:
stm32cubeidec.exe --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data <folder> -import <project> -build <project>/Release -no-indexer
这样做将我的构建管道中的典型总构建时间从 2-3 分钟减少到大约 1 分钟。
【讨论】:
以上是关于STM32CubeIDE 终止前的无头构建延迟的主要内容,如果未能解决你的问题,请参考以下文章