linux系统上使用Python调用C++生成的.so动态链接库opencv

本文档详细记录了在CentOS服务器环境中,如何通过g++编译C++源代码生成.so文件,并利用Python进行调用的过程。特别关注了与OpenCV相关的依赖配置,以及解决在编译和运行过程中遇到的具体问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从环境配置开始,做一些参考链接,我是根据这些链接调试成功的。

在新服务器172.16.5.143的操作记录,CentOS

  1. 生成.so文件:ubuntu下将c++转换为so文件并利用python调用 - 水木清扬 - 博客园 (cnblogs.com)
  2. CentOS与ubuntu的指令有点区别sudo: apt-get:找不到命令_零°豆的博客-优快云博客
  3. 在服务器上装OpenCV:总结:CentOS 安装opencv4.1.0的详细安装步骤 (更新VideoCapture)_verystory的博客-优快云博客
  4. 直接用g++编译出现找不到opencv 就在后面加上这个人的这句话,

 -I /usr/local/include/opencv4 -L /usr/local/lib64 -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_calib3d -lopencv_features2d -lopencv_videoio -std=gnu++11

  1. 使用这个人的Python调用C++.so文件!!简单有用:python调用c++模块.so库, 互相回传数据(ctypes、pybind11) - 知乎 (zhihu.com)
  2. 执行g++报错: `GLIBCXX_3.4.26' not found 解决类似运行报错: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found 的问题_吃素的施子的博客-优快云博客

接下来是操作步骤:

成功使用Python调用.so运行的完整步骤:

  1. 首先编译cpp文件:
    g++ mydll.cpp -fpic -shared -o lib4cloudreg.so  -I /usr/local/include/opencv4 -L /usr/local/lib64 -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_calib3d -lopencv_features2d -lopencv_videoio -std=gnu++11

后面这些主要是OpenCV的环境问题,编译完会生成一个libmydll.so

  1. 修改Python代码中的图片地址:

  1. 执行python3 test.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值