【发布时间】:2014-04-11 02:46:17
【问题描述】:
我知道 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 库。感谢您花时间帮助我!
【问题讨论】:
-
不确定回答这个问题是否相关。但是,我现在正在 Ubuntu 上安装 OpenCV 3.0-dev ...使用来自 docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/… 和 help.ubuntu.com/community/OpenCV 的组合步骤。如果结果正常(手指交叉),为了完整起见,我会给出答案
标签: opencv build compilation shared-libraries static-libraries