2017-03-02 3 views
0

Cuda 및 Opencv로 darknet (YOLO)을 컴파일하려고했습니다. 내가 그들을 컴파일 오류가 없다 그러나이 같은이 경고한다 :libcudart.so.7.5 : 공유 객체 파일을 열 수 없습니다. 해당 파일 또는 디렉토리가 없습니다.

/usr/bin/ld: warning: libcudart.so.7.5, needed by /usr/local/lib/libopencv_core.so, not found (try using -rpath or -rpath-link)  

내가 https://pjreddie.com/darknet/yolo/에서 예제를 시도, 오류가 나올.

./darknet: error while loading shared libraries: libcudart.so.7.5: cannot open shared object file: No such file or directory 

이 문제를 해결하는 방법을 모르겠습니다. http://milq.github.io/install-opencv-ubuntu-debian/

sudo apt-get install libopencv-dev python-opencv 

I 한 사용 옵션에서 표시처럼 아래

내가이 명령을 사용 OpenCV의 설치이

nvcc: NVIDIA (R) Cuda compiler driver 
Copyright (c) 2005-2016 NVIDIA Corporation 
Built on Sun_Sep__4_22:14:01_CDT_2016 
Cuda compilation tools, release 8.0, V8.0.44 

와 터미널 결과에 nvcc -V를 입력하면 내 시스템

OS = Ubuntu 16.04 LTS 
CUDA = 8.0 
OPENCV = 2.4 

입니다 페이지의 두 개이지만에 있습니다.개 과정은 다음과 같은 오류

modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/build.make:2982: recipe for target 'modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o' failed 
make[2]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o] Error 1 
CMakeFiles/Makefile2:16054: recipe for target 'modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/all' failed 
make[1]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/all] Error 2 
make[1]: *** Waiting for unfinished jobs.... 
[ 59%] Linking CXX shared library ../../lib/libopencv_photo.so 
[ 59%] Built target opencv_photo 
Makefile:160: recipe for target 'all' failed 
make: *** [all] Error 2 

이미 .bashrc 내부 CUDA의 경로를 넣어 다시로드하지만 같은 오류가 나타납니다에게 돌아갑니다. 다음은

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64" 
export CUDA_HOME=/usr/local/cuda 
export PATH=${CUDA_HOME}/bin:${PATH} 

.bashrc 여러분의 도움에 감사드립니다 내 내부 CUDA에 대한 경로입니다.

답변

2

OpenCV에서 버전 7.5의 CUDA 런타임이 필요하다는 오류 메시지가 표시됩니다 (즉, 해당 버전의 CUDA와 컴파일되었습니다.) 설치된 CUDA 버전이 8.0입니다. 해당 라이브러리 경로를 추가해도 적합한 버전을 찾는 데 도움이되지 않습니다. OpenCV의하십시오.

CUDA 8.0, 또는에 대한 빌드 OpenCV의 CUDA 7.5을 설치하고 LD_LIBRARY_PATH에 라이브러리 디렉토리를 추가합니다.

기술적으로 당신은 또한 즉 그냥 LD_LIBRARY_PATH에 CUDA 7.5 라이브러리 디렉토리를 추가 (혼합 된 빌드를 시도해 볼 수도, 바람직하게는 이후 CUDA 8.0 경로). 그러나 두 버전의 CUDA 런타임은 문제가 될 가능성이 있습니다 (나는 한번도 시도한 적이 없습니다).

+0

CUDA를 다시 설치하지 않으려면 이전에 X 서버 오류가 발생했기 때문에 엉망이되었습니다. 어쨌든, 당신은 cuda 8.0에 대해 ooencv를 컴파일한다고했는데, 소스에서 opencv를 컴파일해야한다는 뜻입니까? (즉, github 저장소에서 소스 파일을 다운로드하고,'cmake'를 사용하여 빌드하고'make'를 실행하십시오) 명령 줄? (예 : sudo apt-get install ...) 답변 해 주셔서 감사합니다. – Fang

0

나 같은 문제가있는 사람들을위한 해결책입니다. 여기에 daveselinger의 제안을 사용합니다. https://github.com/opencv/opencv/issues/6677

git clone 저장소와 git checkout 3.1.0과 cuda 8 (링크 참조). 그 후 단지 cmakemake

그것은 나를 위해 일했습니다.

관련 문제