我尝试使用
中提供的文档将opencv安装到我的Ubuntu 14.04计算机上但是,在编译过程中我收到以下错误。
Linking CXX shared library ../../lib/libopencv_videoio.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: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libopencv_videoio.so.3.0.0] Error 1
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
make: *** [all] Error 2
我注意到有一些帖子提到了类似的错误,有些解决方案建议从libavcodec.a
删除/usr/local/lib/
。我不想这样做,因为我在机器中也需要ffmpeg库。
有人可以帮我解决这个问题吗?。
由于
答案 0 :(得分:0)
我从一开始就简单地重新安装了整个内容,将$ ./configure
的所有实例都替换为$ ./configure --enable-shared
(首先确保删除所有文件夹和文件,包括上一次尝试的.so文件)。
显然这可行,因为https://stackoverflow.com/a/13812368/10593190。
这与@camino对https://stackoverflow.com/a/19365454/10593190和XavierStuvw's answer的评论相符。
答案 1 :(得分:0)
只需在您的终端/环境中运行这两行:
pip install opencv-python==3.4.5.20
pip install opencv-contrib-python==3.4.5.20