我知道OpenCV 3.0不是发布版本。我正在尝试评估3.0版本中我们正在构建的原型系统的一些功能。我从git存储库中克隆了最新的源代码,并使用以下cmake来构建库:
cmake -D BUILD_SHARED_LIBS=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
但是,当我执行make时,我会在构建库时遇到此问题:
/usr/bin/ld: /usr/local/lib/libavcodec.a(avpacket.o): relocation R_X86_64_32S against `av_destruct_packet' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavcodec.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libopencv_highgui.so.3.0.0] Error 1
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
我不太确定在CMakeLists.txt中设置-fPIC标志的位置。需要注意的是,我已经在我的机器上构建并运行了OpenCV 2.4.8库。感谢您抽出宝贵时间帮助我!
答案 0 :(得分:1)
感谢您的回答。我设法通过删除现有的OpenCV安装来安装OpenCV 3.0.0-dev版本。虽然这不是必需的,但我删除了以前的2.4.8库文件并设法编译它。 CCMake帮助使安装决策更加简单。在运行make之前,使用它来决定要编译哪些库。