Сборка TensorFlow из исходного кода на Ubuntu 16.04 с графическим процессором: GLIBCXX_3.4.20 не найден

Я использую Ubuntu 16.04 и пытаюсь собрать TensorFlow с поддержкой графического процессора из исходного кода в соответствии с это. Все работает нормально до шага «Build TensorFlow», на котором я выполняю:

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

Компиляция выдает ошибку с выводом:

ERROR: /home/thomas/tensorflow/tensorflow/core/BUILD:978:28: Executing genrule //tensorflow/core:proto_text_srcs_all failed: bash failed: error executing command /bin/bash -c ... (remaining 1 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
bazel-out/host/bin/tensorflow/tools/proto_text/gen_proto_text_functions: /home/thomas/anaconda2/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by bazel-out/host/bin/tensorflow/tools/proto_text/gen_proto_text_functions)
bazel-out/host/bin/tensorflow/tools/proto_text/gen_proto_text_functions: /home/thomas/anaconda2/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by bazel-out/host/bin/tensorflow/tools/proto_text/gen_proto_text_functions)
bazel-out/host/bin/tensorflow/tools/proto_text/gen_proto_text_functions: /home/thomas/anaconda2/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by bazel-out/host/bin/tensorflow/tools/proto_text/gen_proto_text_functions)
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.

Я подозреваю, что ошибка как-то связана с anaconda, так как bazel, кажется, ищет libstdc++.so изнутри ~/anaconda2/lib.


person Feynman27    schedule 27.09.2016    source источник


Ответы (2)


Эта команда, похоже, решила мою проблему:

conda install libgcc

из здесь.

person Feynman27    schedule 21.10.2016

РЕДАКТИРОВАТЬ: решение Feynman27 кажется более чистым, попробуйте сначала.

Была такая же проблема. Эти шаги решили это для меня (root, при необходимости добавьте sudo):

  1. Получите новейшую доступную версию libstdС++ 6 (МОЖЕТ БЫТЬ НЕ ТРЕБУЕТСЯ):

    add-apt-repository ppa:ubuntu-toolchain-r/test apt-get update apt-get upgrade

  2. Обновите символические ссылки в ananconda, я сделал это в своей среде python2 в anaconda, возможно, вам нужно сделать это напрямую в ~/anaconda/lib:

    cd ~/anaconda2/envs/python2/lib mv libstdc++.so libstdc++.so.backup mv libstdc++.so.6 libstdc++.so.6.backup ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6

person florentbuisson    schedule 21.10.2016
comment
Перечитав ваш вопрос, я понял, что ошибка, которую я получил, была только при попытке импортировать тензорный поток в python, а не при установке (я сделал это вчера, не помню такой ошибки). В любом случае, я думаю, что эти шаги стоит попробовать - person florentbuisson; 21.10.2016
comment
Для меня это помогло настроить путь к библиотеке, указывающий на папку библиотеки Anacondas: LD_LIBRARY_PATH=$HOME/anaconda2/lib:$LD_LIBRARY_PATH или LD_LIBRARY_PATH=$HOME/anaconda3/lib:$LD_LIBRARY_PATH для anaconda3 соответственно - person Max; 29.08.2017