boost - Travis-ci boost 日志编译与 biicode 超时

标签 boost travis-ci boost-log biicode

我正在使用 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 分钟)

我知道这种情况正在发生,因为没有足够详细的信息,所以我尝试了以下标志:

  1. >bii cpp:build -- VERBOSE=1
  2. 在 CMakeList.txt 中,将 BII_BOOST_VERBOSE 设置为 ON,如提到的 here
  3. 按照说明设置 BOOST_LOG_COMPILE_FAST_ON here
  4. 使用 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-biicodesettings.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/

相关文章:

c++ - boost spirit 业力多种可选

c++ - 使用 UTF-8 在非 ASCII 字符上运行 Ascii 正则表达式

c++ - byte[256] 的 Boost::serial_port 和 asio::async_write 超过 200ms

c++ - 编译用于创建 boost.log 格式的代码时出错

c++ - 如何抑制由 Boost.Log 和 GCC 4.4 引起的 "warning: missing initializer"?

android - Boost Log V2 库 Android 链接

c++ - 动态 equal_to 函数 unordered_map boost

javascript - Travis CI QUnit 构建失败,并在 jQuery 上出现 ReferenceError

ruby - 集成 Gitlab 和 TravisCi

git - 如何使用 Git token 通过 Travis CI/Cloudfoundry 访问私有(private)存储库?