我正在使用 travis-ci 和 biicode 来构建我的项目,该项目依赖于 boost log。但是 boost 日志时间超过 10 分钟,所以我收到以下消息:
No output has been received in the last 10 minutes, this potentially indicates a
stalled build or something wrong with the build itself.
The build has been terminated
构建工作正常,只是在资源有限的情况下,boost log 的编译时间非常长(我尝试在具有 1 个 CPU 和 2GB RAM 的虚拟机上编译它,花费了几乎超过 15 分钟)
我知道这种情况正在发生,因为没有足够详细的信息,所以我尝试了以下标志:
- >bii cpp:build -- VERBOSE=1
- 在 CMakeList.txt 中,将 BII_BOOST_VERBOSE 设置为 ON,如提到的 here
- 按照说明设置 BOOST_LOG_COMPILE_FAST_ON here
- 使用 travis_wait
实际上 travis_wait 似乎是正确的解决方案,但是当我像这样将它放入我的 .travis.yml 中
script: travis_wait bii cpp:build
它实际上不会像平常那样输出日志,只是在 20 分钟后超时。我不认为实际的建筑正在发生
处理这个问题的正确方法是什么?
最佳答案
这是一个已知问题,Boost.Log 需要很长时间来编译。
您可以使用 travis_wait
调用 bii cpp:configure
,但我同意您的意见,我需要日志反馈(无双关语)。不过,我也尝试过,并导致构建时间超过 50 分钟,这意味着 travis 中止在免费帐户上的构建:( 当然,我的存储库不仅仅构建 Boost.Log。
请注意,这是来自 boost-biicode
的 settings.py
文件的一部分 repo 协议(protocol):
#Boost.Log takes so much time to compile, leads to timeouts on Travis CI
#It was tested on Windows and linux, works 'ok' (Be careful with linking settings)
if args.ci: del packages['examples/boost-log']
我目前正在研究一个解决方案,在打印进度的同时启动异步构建。检查this issue 。这周就准备好了:)
要加快构建速度,请尝试使用 BII_BOOST_BUILD_J
变量来设置构建 Boost 组件所需的线程数。这是一个例子:
script:
- bii cpp:configure -DBII_BOOST_BUILD_J=4
请注意,更多线程意味着一次需要更多 RAM 进行编译。确保不会使 travis 作业虚拟机内存不足。
关于boost - Travis-ci boost 日志编译与 biicode 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656633/