首页 文章

OSX Sierra Tensorflow构建错误:ld:找不到文件:@ rpath / CUDA.framework / Versions / A / CUDA

提问于
浏览
0

我按照说明进行了操作:https://gist.github.com/notilas/a30e29ce514970e821a34153c1e78b3f

但无法完成它 .

  • OSX:Sierra

  • Tensorflow版本1.1.0(Google称v1.2不支持OSX CUDA)

  • CUDA工具包:8.0

  • CUDNN:6.0

  • Xcode:7.2.1

  • Anaconda:4.2(Python版本3.5)

错误日志:

错误:/ Users / so041e / ml / tensorflow / tensorflow / python / BUILD:2534:1:链接规则'//tensorflow/python:_pywrap_tensorflow_internal.so'失败:link_dynamic_library.sh失败:错误执行命令external / bazel_tools / tools / cpp / link_dynamic_library.sh没有忽略忽略忽略外部/ local_config_cuda / crosstool / clang / bin / crosstool_wrapper_driver_is_not_gcc -shared -o ...(跳过剩余的455个参数):com.google.devtools.build.lib.shell .BadExitStatusException:进程退出,状态为1. clang:warning:编译时未使用的参数:' - pthread'ld:找不到文件:@ rpath / CUDA.framework / Versions / A / CUDA for architecture x86_64 clang:error:linker命令失败使用退出代码1(使用-v查看调用)目标// tensorflow / tools / pip_package:build_pip_package无法构建使用--verbose_failures查看失败构建步骤的命令行 .

[.bash_profile中]

export PATH="/Users/so041e/anaconda/bin:$PATH"
export CUDA_HOME=/usr/local/cuda
export HOME=/Users/so041e
export PATH="$CUDA_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="/usr/local/cuda/lib:/Developer/NVIDIA/CUDA8.0/lib":$DYLD_LIBRARY_PATH
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
export PATH=$DYLD_LIBRARY_PATH:$PATH
export PATH="//anaconda/bin:$PATH"

移动CUDNN lib并包含到/ user / local / cuda

sudo mv -v cuda/lib/libcudnn* /usr/local/cuda/lib
sudo mv -v cuda/include/cudnn.h /usr/local/cuda/include

没有使用“vent”这个时候刚刚使用过单个python 3.5 . 尝试了两者,但没有区别 .

bazel build --config=cuda --config=opt --action_env PATH --action_env LD_LIBRARY_PATH --action_env DYLD_LIBRARY_PATH //tensorflow/tools/pip_package:build_pip_package
bazel build --config=cuda //tensorflow/tools/pip_package:build_pip_package

1 回答

  • 1

    这可能有点晚了,但我遇到了同样的问题,我设法解决了这个问题 .

    首先,@ rpath / CUDA.framework / Versions / A / CUDA是libcuda.dylib的动态库安装名称,可在/ usr / local / cuda / lib中找到 . 那样做

    otool -l /usr/local/cuda/lib/libcuda.dylib

    检查你在哪里看到@ rpath / CUDA.framework / Versions / A / CUDA;在我的系统上,它在命令LC_REEXPORT_DYLIB中 . 从here开始,dyld似乎不必通过这样做来改变它

    sudo install_name_tool -change @rpath/CUDA.framework/Versions/A/CUDA \ 
        /Library/Frameworks/CUDA.framework/Versions/A/CUDA \
        /usr/local/cuda/lib/libcuda.dylib
    

    这应该可以解决您的问题 .

    为什么你的系统(和我的)有这个libcuda.dylib的安装名称?我完全没有头绪 .

相关问题