0

我正在尝试安装 drake 的 python 绑定。在 make --j 之后它会冻结。我相信我已经正确地完成了前面的步骤。任何人都可以帮忙吗?我正在使用 python 3.6.9 在 Ubuntu 18.04 上运行。

先感谢您。它看起来像这样。

冷冻码头

4

3 回答 3

1

使用make(无-j标志)或make -j1因为bazel(在构建期间内部调用)处理构建(和测试)的并行性,并将默认情况下将作业数设置为核心数(在您的情况下似乎为 8) .

要调整并行度以将作业数减少到少于内核数,user.bazelrc请在存储库的根目录(与文件相同的级别WORKSPACE)创建一个文件,其内容为

test --jobs=N

对于一些N少于您拥有的核心数量。

另请参阅https://docs.bazel.build/versions/master/guide.html#bazelrc

于 2020-04-15T21:42:22.037 回答
0

从屏幕截图来看,drake 构建系统似乎没有做错任何事情。但make -j可能是试图并行做太多的事情。尝试从开始,-j4如果它仍然冻结,请转到2等。

于 2020-04-15T10:14:00.280 回答
0

可能是内存不足。。

一个 hacky 解决方案是更改CMakeLists.txt文件以设置 bazel 使用的最大作业数,方法是在这样--jobs N之后添加(其中 N 是您同时允许的作业数)${BAZEL_TARGETS}

ExternalProject_Add(drake_cxx_python
  SOURCE_DIR "${PROJECT_SOURCE_DIR}"
  CONFIGURE_COMMAND :
  BUILD_COMMAND
    ${BAZEL_ENV}
    "${Bazel_EXECUTABLE}"
    ${BAZEL_STARTUP_ARGS}
    build
    ${BAZEL_ARGS}
    ${BAZEL_TARGETS}
    --jobs 1
  BUILD_IN_SOURCE ON
  BUILD_ALWAYS ON
  INSTALL_COMMAND
    ${BAZEL_ENV}
    "${Bazel_EXECUTABLE}"
    ${BAZEL_STARTUP_ARGS}
    run
    ${BAZEL_ARGS}
    ${BAZEL_TARGETS}
    --
    ${BAZEL_TARGETS_ARGS}
  USES_TERMINAL_BUILD ON
  USES_TERMINAL_INSTALL ON
)
于 2020-10-12T08:40:43.970 回答