[英]How to get started with OpenCV 2.4.2 in ubuntu 10.4?
我正在尝试在Linux(ubuntu 10.4)PC上安装最新的OpenCV版本2.4.2。
我下载了tar球。 解压缩它。 然后在ubuntu 10.04中安装opencv 。
在“制作”时,“ 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”。
我用Google搜索它,发现PC需要CUDA驱动程序。 现在,我可能不需要。
这里是否需要安装该驱动程序,或者我可以绕过该特定的“ make”过程?
我的目标是尽快在ubuntu中开始使用OpenCV。 使用openCV 2.4.2库编译自己的cpp文件是否需要这些构建过程? 我不专注于静态或非静态库。
有没有人像在Windows上那样为ubuntu进行工作,我安装了OpenCV,开始时只需设置包含文件的路径,并将.dlls与自定义可执行文件保持一致,例如从相机捕获图像。
<===更新===>
遵循http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html 。
它通过了Linking CXX可执行文件../../bin/opencv_perf_core。
现在它停留在Linking CXX executable ../../bin/opencv_perf_highgui
,出现以下错误:
/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参数必须得到很好的研究。 任何捷径都会有所帮助。
我已经安装了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"
我不认为该问题与CUDA有关,但是您可以在配置cmake时禁用它,并传递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
另一个有趣的标志可能是BUILD_PYTHON_SUPPORT=ON
编辑 :
显然,OpenCV 2.4.2需要使用更新的CMake ,因此请继续在系统中安装CMake 2.8.8。
我通过使用cmake-gui生成UNIX生成文件后,在设置为构建二进制文件的目录中,然后将libcuda.so
的路径添加到此行CUDA_CUDA_LIBRARY:FILEPATH=
,请libcuda.so
来解决此问题,因此我最终以CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/nvidia-current-updates/libcuda.so
如果您不打算使用CUDA工具包,则可以在使用CUDA = off锁定opencv时禁用此设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.