我正在尝试在Ubuntu 12.04上安装opencv 2.4.5 我尝试按照http://opencv.willowgarage.com/wiki/InstallGuide_Linux
上的步骤操作然而,当我到达制作步骤时。我收到了一个错误。我是linux的新手。
错误是
Linking CXX shared library ../../lib/libopencv_highgui.so
/usr/bin/ld: /usr/local/lib/libavcodec.a(avpacket.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavcodec.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/libopencv_highgui.so.2.4.5] Error 1
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
make: *** [all] Error 2
请帮助!!!
答案 0 :(得分:5)
似乎ffmpeg是罪魁祸首。不知何故,它创造了一些问题。我按照上面提到的说明卸载了ffmpeg并安装了OpenCV。现在我安装了OpenCV 2.4.5而没有FFMPEG支持。但至少它正在发挥作用!
编辑:
我按照http://www.ozbotz.org/opencv-installation/上的说明进行操作
OpenCV 2.4.5现已正确安装。我在64位Ubuntu 12.04上由于lib264和ffmpeg编译命令中缺少--enable-shared --enable-pic参数,因此抛出了问题中提到的错误。
按照这些说明解决了问题。
答案 1 :(得分:1)
GCC
$ sudo apt-get update
$ sudo apt-get install build-essential
如果可用,请使用更高版本(确保您的硬件和操作系统版本正确)
的CMake:
http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
$ tar -xf cmake-2.8.10.2.tar.gz
$ cd cmake-2.8.10.2
$ ./configure
$ make -j4
$ sudo make install
opencv的: http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.3/OpenCV-2.4.3.tar.bz2/download
$ tar -xf OpenCV-2.4.3.tar.bz2
$ cd OpenCV-2.4.3
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=Release ..
$ make -j4
$ sudo make install