我正在尝试在linux(ubuntu 10.4)PC上安装最新的OpenCV版本2.4.2。
我下载了tar球。 没有打印它。 并遵循install opencv in ubuntu 10.04。
虽然'Make'在“ 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文件?我不专注于静态或非静态库。
有没有人为ubuntu工作,就像我在Windows上安装OpenCV一样,只需设置包含文件的路径并使用自定义可执行文件保存.dll就行了,比如从相机中捕获图像。
&lt; ===更新===&gt;
关注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 参数。任何快捷方式都会有所帮助。
答案 0 :(得分: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"
答案 1 :(得分:0)
我不相信问题与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
修改强>:
Apparently OpenCV 2.4.2 needs to use a more recent CMake,请继续在系统中安装CMake 2.8.8。
答案 2 :(得分:0)
我在使用cmake-gui生成UNIX makefile之后,在你设置构建二进制文件的目录中使用CMakeCache.txt解决此问题,并将libcuda.so
的路径添加到此行{{1}所以在我的情况下,我最终得到了CUDA_CUDA_LIBRARY:FILEPATH=
如果您不打算使用CUDA工具包,则可以在使用CUDA = off关闭opencv时禁用此设置