【问题标题】:How to get started with OpenCV 2.4.2 in ubuntu 10.4?如何在 ubuntu 10.4 中开始使用 OpenCV 2.4.2?
【发布时间】:2012-07-12 07:08:41
【问题描述】:

我正在尝试在 linux (ubuntu 10.4) PC 上安装最新的 OpenCV 版本 2.4.2。

我下载了 tar 球。 解压它。 并关注install opencv in ubuntu 10.04

在“Linking CXX executable ../../bin/opencv_perf_core”这里出现红色后,“Make”出现错误;经过数百万条警告或错误消息后,它显示如下:

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

我搜索了一下,发现 PC 需要 CUDA 驱动程序。现在我可能不需要那个。

此处是否需要安装驱动程序,或者我可以绕过特定的“制作”过程?

我的目标是尽快在 ubuntu 中开始使用 OpenCV。使用 openCV 2.4.2 库编译自己的 cpp 文件是否需要这些构建过程?我不专注于静态或非静态库。

有没有人为 ubuntu 工作,就像在 windows 上一样,我安装 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参数需要好好研究一下。任何快捷方式都会有所帮助。

【问题讨论】:

  • +1 表示 Astor 通知它。
  • 你们俩干得好。 \m/ :)
  • @Rick2047 认真地检查您的问题并接受解决问题的答案。我相信你知道怎么做。
  • 您遵循了一些非常古老的安装说明。您在更新问题后发布的链接中的说明应该可以正常工作。关于您仍然遇到的那个错误,您的 ubuntu 中是否安装了 v4l?

标签: opencv build build-process ubuntu-10.04


【解决方案1】:

我不相信问题与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。

【讨论】:

  • 输出为:'ele@rick:~/OpenCV_svn/opencv/release$ make [ 13%] Built target opencv_highgui Linking CXX executable ../../bin/opencv_perf_core ... 百万错误警告消息 ../../lib/libopencv_ts.so.2.4.9:未定义引用 `std::basic_string, std::allocator >::~basic_string( )' ../../lib/libopencv_ts.so.2.4.9: undefined reference to [typeinfo for int] collect2: error: ld returned 1 exit status make[2]: *** [bin/opencv_perf_core] 错误 1 make[1]: *** [modules/core/CMakeFiles/opencv_perf_core.dir/all] 错误 2 make: *** [all] 错误 2'
  • 更新了答案。我认为您可能需要将 CMake 更新到 v2.8.8。
  • 是的,我有 cmake 版本 2.8.0。我试图更新它。它说如下:'ele@rick:~/cmake-2.8.8$ make Linking CXX executable cmIML_test CMakeFiles/cmIML_test.dir/test_ABI_CXX.cxx.o:(.eh_frame+0x13): undefined reference to __gxx_personality_v0' CMakeFiles/cmIML_test .dir/test_INT_CXX.cxx.o:(.eh_frame+0x13): undefined reference to __gxx_personality_v0' collect2: error: ld returned 1 exit status make[2]: *** [Utilities/KWIML/test/cmIML_test] Error 1 make [1]: *** [Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/all] Error 2 make: *** [all] Error 2' 看来我忘记了linux的一切。 :P
【解决方案2】:

我通过在使用 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 时禁用此设置

【讨论】:

  • 错误(见更新的问题)不太可能与 CUDA 有关。
【解决方案3】:

我已经安装了 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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 2012-08-20
    • 1970-01-01
    相关资源
    最近更新 更多