【发布时间】:2020-04-15 01:18:18
【问题描述】:
我正在尝试安装 drake 的 python 绑定。在 make --j 之后它会冻结。我相信我已经正确地完成了前面的步骤。任何人都可以帮忙吗?我正在使用 python 3.6.9 在 Ubuntu 18.04 上运行。
提前谢谢你。看起来像这样。
【问题讨论】:
-
如果您展示您使用的实际命令,而不是仅仅说您认为您正确地执行了这些命令,这将对我们有所帮助。
标签: drake
我正在尝试安装 drake 的 python 绑定。在 make --j 之后它会冻结。我相信我已经正确地完成了前面的步骤。任何人都可以帮忙吗?我正在使用 python 3.6.9 在 Ubuntu 18.04 上运行。
提前谢谢你。看起来像这样。
【问题讨论】:
标签: drake
使用make(无-j标志)或make -j1,因为bazel(在构建期间内部调用)处理构建(和测试)的并行性,并将作业数设置为默认情况下的核心数(在您的情况下似乎是 8)。
要调整并行度以将作业数减少到少于内核数,请在存储库的根目录(与 WORKSPACE 文件相同级别)创建一个名为 user.bazelrc 的文件,其中包含内容
test --jobs=N
对于一些N 少于您拥有的核心数量。
另见https://docs.bazel.build/versions/master/guide.html#bazelrc。
【讨论】:
从屏幕截图来看,drake 构建系统似乎没有做错任何事情。但make -j 可能试图并行做太多事情。尝试从-j4 开始,如果仍然冻结,请转到2 等。
【讨论】:
可能内存不足..
一个 hacky 解决方案是更改 CMakeLists.txt 文件以设置 bazel 使用的最大作业数,方法是在 ${BAZEL_TARGETS} 之后添加 --jobs N(其中 N 是您允许同时允许的作业数)像这样
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
)
【讨论】: