4

I am trying to install latest OpenCV version 2.4.2 on a linux (ubuntu 10.4) PC.

I downloaded the tar ball. Un-tar-ed it. And followed install opencv in ubuntu 10.04.

While 'Make' I got error after "Linking CXX executable ../../bin/opencv_perf_core" comes in red color here; after millions of warning or error msgs it shows as follows:

... ... ...
../../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

Keyword: "Linking CXX executable ../../bin/opencv_perf_core" with quotes.

I googled for it and found that the PC needs CUDA driver. For now I don't need that perhaps.

Does that driver installation required here or I can bypass that particular 'make' process?

My aim is to get started with OpenCV as soon as possible in ubuntu. Does these build processes required for compiling own cpp file using openCV 2.4.2 libraries? I am not concentrating on static or non static libraries.

Has anyone worked on for ubuntu as just like on windows I install OpenCV and get started just by setting path to the include file and keeping .dlls with the custom executable file, say for capturing images from a camera.

<=== Update ===>

Followed http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html.

It passed the Linking CXX executable ../../bin/opencv_perf_core.

now it stucks at Linking CXX executable ../../bin/opencv_perf_highgui with following errors:

/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

Seems the cmake parameters has to be studied well. Any shortcut will be helpful.

4

3 回答 3

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"
于 2012-07-12T18:15:45.897 回答
0

I'm not convinced that problem is related to CUDA, but you can disable it when configuring cmake, passing WITH_CUDA=OFF:

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

Another interesting flag for you might be BUILD_PYTHON_SUPPORT=ON

EDIT:

Apparently OpenCV 2.4.2 needs to use a more recent CMake, so go ahead and install CMake 2.8.8 in your system.

于 2012-07-12T16:05:27.490 回答
0

我通过在使用 cmake-gui 生成 UNIX makefile 后转到 CMakeCache.txt 来解决这个问题,在您设置为构建二进制文件的目录中,并将路径添加libcuda.so到这一行CUDA_CUDA_LIBRARY:FILEPATH=,所以在我的情况下,我最终得到CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/nvidia-current-updates/libcuda.so

如果您不打算使用 CUDA 工具包,您可以在使用 CUDA=off 制作 opencv 时禁用此设置

于 2012-10-22T13:26:33.153 回答