关于pybind11与cmake的使用

github传送门

因为pybind11官方教程我并没有找到与cmake的联合使用,导致我不会写CMakeLists。然后其实也不是很难,发个帖子记录一下.
帮助你在python中使用cmake中的函数,理论上你只需要点进上面的链接就好。下面是README。

step1

pip install pytest

step2

你必须要把pybind11和CMakeLists.txt放到一个文件下。pybind11是在github下载的官方仓库

git clone https://github.com/pybind/pybind11.git

这里我已经下好了,你需要做的是在pybind11下

mkdir build
cd build
cmake ..
cmake --build . --config Release --target check

step3

使用这个简单的官方代码example.cpp

#include <pybind11/pybind11.h>
namespace py = pybind11;
int add(int i, int j) {return i + j;
}PYBIND11_MODULE(example, m) {m.doc() = "pybind11 example plugin"; // optional module docstringm.def("add", &add, "A function which adds two numbers");
}

CMakeLists也很简单

cmake_minimum_required(VERSION 2.8.12)
project(example)   add_subdirectory(pybind11)
pybind11_add_module(example example.cpp)

上面有些关于pybind11的东西,所以必须要把CMakeLists和pybind11放在同一路径下。

step4

cmake编译这个东西。

mkdir build
cd build
cmake ..
make

会生成一个很长的.so文件,这个文件就是能够在python中调用c++的关键。
当你使用python调用c++函数时,请确保.so文件与python文件在同一目录下。

Test

可以直接在终端测试。

import example
example.add(3, 4)
[out]: 7

pybind11与cmake的使用相关推荐

  1. couldnt find pybind11Config.cmake

    检查用pip3或pip安装的方式是否生成了pybind11Config.cmake find / -iname pybind11-config.cmake #可用find找一下 如果没有此文件可以尝试 ...

  2. Python 绑定:从 Python 调用 C 或 C++

    摘要:您是拥有想要从 Python 中使用的C或 C++ 库的 Python 开发人员吗?如果是这样,那么Python 绑定允许您调用函数并将数据从 Python 传递到C或C++,让您利用这两种语言 ...

  3. androidstudio4.1.1 build model卡主_在C++中加载PyTorch1.4的FasterRCNN模型

    千呼万唤始出来 在PyTorch的1.4版本和torchvision的0.5.0版本中,PyTorch可以直接使用libtorch加载FasterRCNN等模型.之前版本支持仅包含conv等网络层模型 ...

  4. Ubuntu20.04安装UHD及GUN Radio3.9

    目录 1.安装UHD依赖库及UHD 2.安装GNU Radio3.9.3 1.安装UHD依赖库及UHD 总结自:USRP Hardware Driver and USRP Manual: Buildi ...

  5. pybind11 入门

    pybind 实例参考: https://github.com/tdegeus/pybind11_examples 函数名不能叫add,和系统的add冲突了,改个名可以. 参考:https://blo ...

  6. pybind11简单使用

    https://sanzo.top/Default/pybind11 pybind11介绍 github.com/pybind/pybind11 使用pybind11可以将C++库绑定到Python, ...

  7. 混合编程:如何用pybind11调用C++

    本文分享自华为云社区<混合编程:如何用pybind11调用C++>,作者:SNHer. 在实际开发过程中,免不了涉及到混合编程,比如,对于python这种脚本语言,性能还是有限的,在一些对 ...

  8. cmake 构建路径_基于CMake构建系统的MLIR Example扩展

    上一篇文章讲了把pybind11的示例程序嵌入到了MLIR的Example中,但是在构建的过程中有一定运气成分,并不知道具体是怎么通过CMake构建系统编译出的共享库文件.在分析了MLIR各层级的CM ...

  9. ndarray python 映射_191123 使用 Pybind11 和 OpenCV 创建 Python 库

    参观飞机工厂不能让你学得流体力学,也不能让你学会开飞机.然而如果你会开飞机又懂流体力学,参观飞机工厂可以带给你最大的乐趣和价值.-- 侯捷 献给 @AliceInt-ZLJ by Knight @20 ...

最新文章

  1. 毕飞宇:我是靠阅读支撑起来的作家 因为生活没有给我那么多
  2. nginx的error.log日志常见的几个错误解决方法
  3. 编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列
  4. gcc -D选项的作用
  5. Git 分支管理-git stash 和git stash pop
  6. 12面魔方公式图解法_一位建筑工程师:多年渴望就是学会魔方还原,只按这七步就可以!...
  7. ubuntu python3.7修改默认pip版本_详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本 安装python3后使用pip和pip3的区别...
  8. 实时数据导入kafka_实时数据仓库必备技术:Kafka知识梳理
  9. DOM节点操作大全(一)
  10. 考研高等数学张宇30讲笔记——第五讲 一元函数微分学的几何应用
  11. 统一认证 ldap mysql_LDAP简述及统一认证说明
  12. Python 转 exe
  13. 外地户籍应届毕业生落户上海申请及办理流程(包括海外)
  14. 【HTML5】input标签中的Require必填项
  15. 机械键盘恢复出厂fn_机械键盘使用说明
  16. 译: 进化的系统需要进化的系统工程
  17. MySQL-python安装遇到的各种问题
  18. 我在Windows系统搭建python的Hadoop+Spark环境时踩过的坑
  19. Latex特殊符号、公式、颜色整合
  20. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读

热门文章

  1. 纸的折法(包括:枫叶,梅花,千纸鹤,小狗,豹子,蛇,大象,狐狸,鹅,老鼠,猴子,骆驼,蜻蜓,蝎子,瓢虫,螳螂,蜜蜂,船和小猫咪)...
  2. Openstack新建云主机的流程
  3. android 9.0关机充电流程,充电图标和电量显示百分比修改
  4. gin框架学习-Casbin入门指南(ACL、RBAC、域内RBAC模型)
  5. 计算机术语awage表示什么,计量经济学第3章计算机习题
  6. java 电池类类代码举例_教案:Java第7章 类的方法
  7. 计算机网络OSI七层协议
  8. python爬虫实践-02-大众点评评论爬取-破解CSS字体加密
  9. 微农链的研发技术是什么?
  10. java 实例化bean_spring实例化bean