1.问题描述
python相比C/C++,具有很多封装好的高级的API,极大地方便了平时的程序开发。但是有的时候我们需要的某个功能模块python里面并没有实现,但是C/C++下有现有的程序,那么一种方法就是用python调用C/C++的模块.下面举的例子为:
假设我需要计算任意两个四边形的交叠率(intersection over union),这个可以利用C++下的boost库很方便的实现,现在我需要在python环境下调用这个写好的C++函数
2.问题解决
2.1 将C++程序编译成动态链接库
假设当前目录下存在文件compute_iou.h以及compute_iou.cpp, 其中compute_iou.h如下所示:
#include <vector>
#include <boost/geometry/geometry.hpp>
#include <boost/geometry/geometries/register/point.hpp>
#include <boost/geometry/geometries/register/ring.hpp>