gpt4 book ai didi

linux - OpenCv 3.1.0 - 编译失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:13 25 4
gpt4 key购买 nike

我正在尝试在 debian 8 上安装 OpenCv 3.1.0(它提供了 python3 绑定(bind))

遵循官方网站上的标准程序http://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html进程失败

[ 30%] Building CXX object modules/photo/CMakeFiles/opencv_photo.dir/opencl_kernels_photo.cpp.o
Linking CXX shared library ../../lib/libopencv_shape.so
[ 30%] Built target opencv_shape
Linking CXX shared library ../../lib/libopencv_photo.so
[ 30%] Built target opencv_photo
Makefile:147: recipe for target 'all' failed
make: *** [all] Error 2
[ 0%] Built target opencv_core_pch_dephelp
[ 0%] Built target pch_Generate_opencv_core
[ 4%] Built target opencv_core
[ 4%] Built target opencv_ts_pch_dephelp
[ 4%] Built target pch_Generate_opencv_ts
[ 4%] Built target opencv_imgproc_pch_dephelp
[ 4%] Built target pch_Generate_opencv_imgproc
[ 9%] Built target opencv_imgproc
[ 9%] Built target opencv_imgcodecs_pch_dephelp
[ 9%] Built target pch_Generate_opencv_imgcodecs
[ 11%] Built target opencv_imgcodecs
[ 11%] Built target opencv_videoio_pch_dephelp
[ 11%] Built target pch_Generate_opencv_videoio
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
modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:280: recipe for target 'lib/libopencv_videoio.so.3.1.0' failed
make[2]: *** [lib/libopencv_videoio.so.3.1.0] Error 1
CMakeFiles/Makefile2:4076: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failed
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
Makefile:147: recipe for target 'all' failed
make: *** [all] Error 2

有关此问题的更多信息,请访问 http://wiki.open-si.org/trac-notes/ticket/10

最佳答案

此错误来自 ffpmeg 使用的某些库未使用 --enable-shared 编译最有可能是 libvpx,请在使用 --enable-shared 重置 ./configure 之前先使用“make clean”并重新编译这些库.

make clean
./configure --enable-shared --disable-static
make
sudo make install

假设您不将 FFMPEG 与 OpenCV 一起使用的另一种选择:您可以禁止它被编译:

当你运行 Cmake 即:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON2_PACKAGES_PATH=~/.virtualenvs/cv/lib/python2.7/site-packages \
-D PYTHON2_LIBRARY=/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/bin \
-D PYTHON2_INCLUDE_DIR=/usr/local/Frameworks/Python.framework/Headers \
-D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..

添加标志 -DWITH_FFMPEG=0 不编译 FFMPEG 部分

关于linux - OpenCv 3.1.0 - 编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40391493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com