私のQTアプリケーションを構築するDockerfileを作成しましたが、ビルドにいくつか問題があります。Nvidia-docker - ビルドプロセスでlibnvcuvid.soが見つかりません
ビルドコマンドがDockerfile上にある場合、それはこのエラーをtrhows:
ninja: error: '/usr/lib/x86_64-linux-gnu/libnvcuvid.so', needed by 'bin/x64/release/*****/librtmpPlugin.so', missing and no known rule to make it
私は一時的なコンテナでこのエラーを解決するためのシンボリックリンクを追加しました:
ln -s /usr/local/nvidia/lib64/libnvcuvid.so.1 /usr/lib/x86_64-linux-gnu/libnvcuvid.so
が、私は、コメントを追加し私はまだ同じエラーが発生しています。
まず、画像がぶら下がっていてもすべての問題をクリーニングしているキャッシュが残っていると思っていました。
これは私のENVキーのいくつかは次のとおりです。
RUN mv /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/x86_64-inux-gnu/libOpenCL.so.1_old
RUN ln -s /usr/local/cuda/lib64/libOpenCL.so.1 /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
RUN ln -s /usr/local/cuda-8.0/targets/x86_64-linux/lib/stubs/libcuda.so /usr/lib/x86_64-linux-gnu/libcuda.so
RUN ln -s /usr/local/cuda-8.0/targets/x86_64-linux/lib/stubs/libnvidia-ml.so /usr/lib/x86_64-linux-gnu/libnvidia-ml.so
私はnvidiaのCUDA 8画像を使用しています:
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
ENV LIBRARY_PATH /usr/local/cuda/lib64/stubs:${LIBRARY_PATH}
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
ENV OPENCL_HEADERS /usr/local/cuda/include
ENV LIBOPENCL /usr/local/cuda/lib64
ENV CUDA_TOOLKIT_ROOT_DIR /usr/local/cuda
ENV CUDA_NVCC_EXECUTABLE /usr/bin/nvcc
これは私が他のエラーを取り除くためにやった 'ハック' の一部です+ nvidiaドッカー、ドッカーバージョン17.03.1-ce。
私は、Dockerfileのコンパイルプロセスとコンテナのランタイムには何の違いもないと思っていました。
このライブラリはCUDAの一部ではありません。それはNVIDIAドライバと一緒に出荷されます – talonmies