【python】pybind11 make编译

1,介绍
    pybind11是一个只有头文件的轻量级库,它向Python暴露了C++的类型同时也向C++暴露了Python类型,pybind11主要用于创建现有C++代码的Python绑定。

1,安装要求
1.1 gcc版本
GCC 4.8或更新版本

sudo apt-get install gcc-4.8 cmake
conda install pytest

1.2 编译pybind11

git clone https://github.com/pybind/pybind11.git
mkdir build
cd build
cmake ..
cmake --build . --config Release --target check
make check -j 4

2,程序
2.1 example.cpp

#include <include/pybind11/pybind11.h>
#include <include/pybind11/stl.h>
#include <vector>

int add(int i, int j)
{
  return i+j;
}

// python程序入口
namespace py = pybind11;

PYBIND11_MODULE(example,m)
{
  m.doc() = "pybind11 example plugin";
  m.def("add", &add, "two integer add");
}

2.2 makefile

CXXFLAGS = -std=gnu++11 -O3 -shared -fPIC
LDFLAGS = $(shell python3-config --cflags --ldflags --libs)

PYBIND11 = path/to/pybind11/include
CXX_SOURCES = example.cpp
LIB_SO = example.so

$(LIB_SO): $(CXX_SOURCES)
	@$(CXX) $(CXXFLAGS) -I $(PYBIND11) $(LDFLAGS) -o $@ $(CXX_SOURCES)
clean:
	rm -rf $(LIB_SO)

只要pybind11中的include,注意include

2.3 test.py

import example
out = example.add(1,2)
print(out)
3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值