python - 使用python支持错误编译opencv

标签 python c++ opencv cmake

我正在尝试安装支持 python 的 opencv,但我遇到了一个我无能为力的问题。

当我使用 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON .. 配置项目时,它会配置并表示存在 python 支持。

--   Python:
--     Interpreter:                 /usr/local/bin/python2 (ver 2.7.10)
--     Libraries:                   /usr/local/lib/libpython2.7.a (ver 2.7.10)
--     numpy:                       /usr/local/lib/python2.7/site-packages/numpy/core/include (ver 1.9.2)
--     packages path:               lib/python2.7/site-packages

当我尝试制作时,它在

处失败了
[ 75%] Built target opencv_test_contrib
Linking CXX shared library ../../lib/cv2.so
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpython2.7.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/cv2.so] Error 1
make[1]: *** [modules/python/CMakeFiles/opencv_python.dir/all] Error 2
make: *** [all] Error 2

它在没有 python 支持的情况下构建得很好。

我不明白这个错误是什么意思/如何解决这个问题,因为我对 cmake 没有太多经验。任何调试此帮助的帮助表示赞赏。

最佳答案

如错误所述,您需要使用“-fPIC”标志重新编译。一些研究提出了简单的解决方法。添加到命令 -D CMAKE_C_FLAGS=-fPIC,这样您的整个命令就是 cmake -D CMAKE_C_FLAGS=-fPIC -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT =ON -D BUILD_EXAMPLES=ON ..

请让互联网上的其他人知道这是否有效。

关于python - 使用python支持错误编译opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390876/

相关文章:

python - 如何使用 Python 中的 REST API 迭代 Confluence Cloud 中 Space 中的所有页面

python - 没有名为 sys 和 time 的模块

python - 超过最大递归深度。多处理和 bs4

c++ - BMI计算器错误

c++ - 如何关闭驱动器

c++ - 如何在OpenCV中将平行四边形图像转换为矩形图像?

opencv调整大小+免费kinect

python - 如何在 python 中读取一个大的 tif 文件?

c++ :将 std::map<std::string, double> 转换为 std::map<std::string_view, double>

c++ - 使用 openCV 的简单 Qt 项目立即崩溃