2012-07-12 2 views
4

Linux (우분투 10.4) PC에 최신 OpenCV 버전 2.4.2를 설치하려고합니다.우분투 10.4에서 OpenCV 2.4.2를 시작하는 방법은 무엇입니까?

타르 볼을 다운로드했습니다. 타르다. 그리고 install opencv in ubuntu 10.04이 뒤 따른다.

'Linking CXX executable ../../bin/opencv_perf_core'이 빨간색으로 표시되면 '확인'하는 동안 오류가 발생합니다.

... ... ... 
../../lib/libopencv_ts.so.2.4.2: undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_string()' 
../../lib/libopencv_ts.so.2.4.2: undefined reference to `typeinfo for int' 
collect2: error: ld returned 1 exit status 
make[2]: *** [bin/opencv_perf_core] Error 1 
make[1]: *** [modules/core/CMakeFiles/opencv_perf_core.dir/all] Error 2 
make: *** [all] Error 2 

키워드 : "연결 CXX 실행 ../../bin/opencv_perf_core"를 따옴표와 함께 다음과 같이 경고 또는 오류 MSG를 수백만 후 보여줍니다.

내가 인터넷 검색을하고 PC에 CUDA 드라이버가 필요한 것으로 나타났습니다. 지금은 그럴 필요가 없습니다.

여기에 드라이버 설치가 필요합니까, 아니면 특정 '확인'프로세스를 건너 뛸 수 있습니까?

내 목표는 우분투에서 가능한 한 빨리 OpenCV를 시작하는 것입니다. OpenCV 2.4.2 라이브러리를 사용하여 자신의 cpp 파일을 컴파일하는 데 필요한 프로세스를 빌드합니까? 나는 정적 또는 비 정적 라이브러리에 집중하고 있지 않다.

누구나 OpenCV를 설치하고 포함 파일의 경로를 설정하고 .dll을 사용자 지정 실행 파일로 유지하여 Windows에서 OpenCV를 설치하는 것처럼 우분투에서 작업했습니다. 카메라에서 이미지를 캡처하는 경우를 말합니다.

< === 업데이트 ===>

http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html을 따랐다.

링크 CXX 실행 파일 ../../bin/opencv_perf_core를 통과했습니다. 다음과 같은 오류가 Linking CXX executable ../../bin/opencv_perf_highgui에서

지금 stucks :

/usr/bin/ld: ../../lib/libopencv_highgui.a(cap_libv4l.cpp.o): undefined reference to symbol 'v4l2_close' 
/usr/bin/ld: note: 'v4l2_close' is defined in DSO /usr/lib/libv4l2.so.0 so try adding it to the linker command line 
/usr/lib/libv4l2.so.0: could not read symbols: Invalid operation 
collect2: error: ld returned 1 exit status 
make[2]: *** [bin/opencv_perf_highgui] Error 1 
make[1]: *** [modules/highgui/CMakeFiles/opencv_perf_highgui.dir/all] Error 2 
make: *** [all] Error 2 

cmake 매개 변수를 보인다 잘 연구해야합니다. 어떤 지름길이 도움이 될 것입니다. WITH_CUDA=OFF을 통과

+1

+1을 사용하지 마십시오. –

+0

모두 잘 했어. \ m/:) – Rick2047

+3

@ Rick2047 진지하게 질문을 검토하고 해결 된 답변을 수락하십시오. 당신이 어떻게 알고 있는지 확신합니다. – karlphillip

답변

0

나는 그 문제는 CUDA와 관련이 확신 아니지만, cmake 구성 할 때 당신이 그것을 해제 할 수 있습니다 :

cd OpenCV-2.4.2 
mkdir build 
cd build 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_EXAMPLES=ON -D WITH_CUDA=OFF .. 
make 
sudo make install 

당신을 위해 또 다른 흥미로운 플래그 수 있습니다 BUILD_PYTHON_SUPPORT=ON

편집 :

Apparently OpenCV 2.4.2 needs to use a more recent CMake, 그래서 가서 CMake 2.8.8을 시스템에 설치하십시오.

+0

출력 경고 메시지 ../../lib/libopencv_ts.so.2.4.9 :'std :: basic_string , std :: allocator :: ~ basic_string() ' ../../lib/libopencv_ts.so.2.4.9 : [typeinfo int]에 대한 정의되지 않은 참조 collect2 : 오류 : ld가 1 종료 상태를 반환했습니다. make [2] : *** [bin/opencv_perf_core] 오류 1 make [1] : *** [modules/core/CMakeFiles/opencv_perf_core.dir/all] 오류 2 make : *** [모두] 오류 2 ' – Rick2047

+0

답변이 업데이트되었습니다. CMake를 v2.8.8로 업데이트해야한다고 생각합니다. – karlphillip

+0

그래, 나는 cmake 버전 2.8.0을 가졌다. 나는 그것을 업데이트하려고 노력했다. 그것은 말한다 아래와 같이 : '전자 업계 @ 릭 : ~/cmake-2.8.8 $는 링크하기 CXX 실행 cmIML_test CMakeFiles/cmIML_test.dir/test_ABI_CXX.cxx.o :(eh_frame + 0x13의)합니다 __gxx_personality_v0하는 정의되지 않은 참조를.' CMakeFiles/cmIML_test.dir/test_INT_CXX.cxx.o :(.eh_frame + 0x13) : __gxx_personality_v0에 대한 정의되지 않은 참조 collect2 : 오류 : ld가 1 종료 상태를 반환했습니다. make [2] : *** [Utilities/KWIML/test/cmIML_test] 오류 1 make [1] : *** [Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/all] 오류 2 make : *** [모두] 오류 2 'Linux의 모든 것을 잊어 버린 것 같습니다. . : P – Rick2047

2

OpenCV 2.4.2를 설치하고 설치 스크립트를 작성했습니다. 여기에서 찾을 수 있습니다 https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/2.4/opencv2_4_2.sh

또는 자세한 내용은 내 블로그 게시물을 확인하십시오. http://jayrambhia.wordpress.com/2012/06/20/install-opencv-2-4-in-ubuntu-12-04-precise-pangolin/

echo "Installing OpenCV 2.4.2" 
mkdir OpenCV 
cd OpenCV 
echo "Removing any pre-installed ffmpeg and x264" 
sudo apt-get remove remove ffmpeg x264 libx264-dev 
echo "Installing Dependenices" 
sudo apt-get install libopencv-dev 
sudo apt-get install build-essential checkinstall cmake pkg-config yasm 
sudo apt-get install libtiff4-dev libjpeg-dev libjasper-dev 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev 
sudo apt-get install python-dev python-numpy 
sudo apt-get install libtbb-dev 
sudo apt-get install libqt4-dev libgtk2.0-dev 
echo "Downloading ffmpeg" 
wget http://ffmpeg.org/releases/ffmpeg-0.11.1.tar.bz2 
echo "Installing ffmpeg" 
tar -xvf ffmpeg-0.11.1.tar.bz2 
cd ffmpeg-0.11.1/ 
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab 
make 
sudo make install 
cd .. 
echo "Downloading v4l" 
wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.8.8.tar.bz2 
echo "Installing v4l" 
tar -xvf v4l-utils-0.8.8.tar.bz2 
cd v4l-utils-0.8.8/ 
make 
sudo make install 
cd .. 
echo "Downloading OpenCV 2.4.2" 
wget -O OpenCV-2.4.2.tar.bz2 http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.2/OpenCV-2.4.2.tar.bz2/download 
echo "Installing OpenCV 2.4.2" 
tar -xvf OpenCV-2.4.2.tar.bz2 
mkdir build 
cd build 
cmake -D CMAKE_BUILD_TYPE=RELEASE .. 
make 
sudo make install 
sudo echo “/usr/local/lib” >> /etc/ld.so.conf 
sudo ldconfig 
echo "OpenCV 2.4.2 ready to be used" 
0

나는 CMakeCache로 이동하여이 문제를 해결한다.당신이하지 않을 경우 TXT 그래서 내 경우에는이 라인 CUDA_CUDA_LIBRARY:FILEPATH=libcuda.so의 경로를 바이너리를 구축 설정 한 디렉토리에, cmake-GUI를 사용하여 UNIX 메이크 파일을 생성하고, 추가 한 후 내가 CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/nvidia-current-updates/libcuda.so

으로 돌아가 셨습니다 귀하의 CUDA 툴킷을 사용하면 CUDA로 opencv를 cmake 할 때이 설정을 비활성화 할 수 있습니다 : 알림을 위해 Astor 용 CUDA = off

+0

오류 (업데이트 된 질문 참조)가 CUDA와 관련이 있음은 거의 없습니다. –

관련 문제