code::blocks编译生成pyd(pybind11)

code::blocks编译生成pyd(pybind11)

由于visual studio的openmp还停留于低版本的状态,很多命令不支持,因此题主采用code::blocks编译pyd(pybind)
pybind库的安装
两个办法
方法一
去github下载文件夹即可
https://github.com/pybind/pybind11
方法二
采用虚拟环境下载pybind
先在pycharm内安装一下虚拟环境库virtualenv(pycharm无法下载则直接cmd或者anaconda prompt中pip install virtualenv)
在这里插入图片描述
然后在想要下载pybind库的文件夹中进入cmd命令
在这里插入图片描述virtualenv pybindEnv
在这里插入图片描述
cd pybindEnv
.\Scripts\activate
最后就是按照 -i包括后面的网址只是把下载源切到国内网址
在这里插入图片描述
.\Scripts\pip.exe install pybind11 -i https://pypi.tuna.tsinghua.edu.cn/simple/
完成上述步骤后pybind11已经下载完成
code::blocks链接
创建dynamic link library项目
在这里插入图片描述
输出目录和工程输出目录后面可以修改
项目-属性-构建目标
在这里插入图片描述
这里输出的文件名必须和项目代码中的函数参数一致
如下是openmp测试代码
#include <pybind11/pybind11.h>
#include<omp.h>
int add(int i, int j) {

#pragma omp parallel
{
int num_threads=omp_get_num_threads();
#pragma omp master
{

if (num_threads>=2)
printf(“openmp supports”);
}
}
return i + j;
}

PYBIND11_MODULE(exam, m) {
m.doc() = “pybind11 example plugin”; // optional module docstring
m.def(“add”, &add, “A function which adds two numbers”);
}

这里面PYBIND11_MODULE(exam, m) 中第一个参数为exam,输出的pyd文件名字必须和这个参数一致
库文件链接设定如下
我是采用anaconda,建议诸位也采用这个- -
设置-编译器进行具体设定
在这里插入图片描述
我这里还链接了openmp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成上述设置后点击build就会生产pyd文件,我们直接放到python工作路径给python调用即可
在这里插入图片描述
关于code::blocks的初始化配置和下载、汉化等请自行搜索教程,这里不多介绍
总结
能看到这个文章的朋友应该是想用code::blocks来编写CPP项目,并给python调用。
题主参考pybind(visual studio)的编译过程尝试用code::blocks实现的pyd编译,由于题主非科班出生,因此相关描述可能不太严谨,请见谅!
关于pybind的相关函数和语法暂时不做介绍,相关的教程和文档已经很多了,请自行学习,本质上和matlab混合C++/C编程类似,一通百通,不多展开!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值