我正在尝试安装drake的python绑定。在--j之后,它冻结。我相信我已经按照之前的步骤正确完成了所有操作。有人可以帮忙吗?我正在使用python 3.6.9在Ubuntu 18.04上运行。
先谢谢您。看起来像这样。
答案 0 :(得分:1)
使用make
(无-j
标志)或make -j1
,因为bazel
(在构建期间内部调用)处理构建(和测试)的并行性并将默认情况下将作业数设置为核心数(在您的情况下为8)。
要调整并行度以将作业数减少到少于内核数,请在存储库的根目录(与user.bazelrc
文件相同的级别)中创建一个名为WORKSPACE
的文件,其中内容
test --jobs=N
比您拥有的内核数少N
。
另请参阅https://docs.bazel.build/versions/master/guide.html#bazelrc。
答案 1 :(得分:0)
从屏幕截图来看,看起来drake构建系统没有做任何错误。但是make -j
可能正在尝试并行执行太多操作。尝试从-j4
开始,如果仍然冻结,则转到2
,依此类推。
答案 2 :(得分:0)
可能是内存不足。
一种骇人听闻的解决方案是通过在CMakeLists.txt
之后添加--jobs N
(其中N是您同时允许的作业数量)来更改${BAZEL_TARGETS}
文件以设置bazel使用的最大作业数量。像这样
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
)