美文网首页
pybind11使用

pybind11使用

作者: D_Major | 来源:发表于2019-10-08 15:49 被阅读0次

    官方文档: https://pybind11.readthedocs.io/en/stable/basics.html#header-and-namespace-conventions
    首先pip3 install pybind11, 一般把源码和binding file分开, 这里为了方便写在一起:

    #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 docstring
        m.def("add", &add, "A function which adds two numbers");
    }
    

    使用如下命令编译

    $ c++ -O3 -Wall -shared -std=c++11 -fPIC `python3 -m pybind11 --includes` example.cpp -o example`python3-config --extension-suffix`
    

    -O3参数用于优化程序, debug用O2, release用O3, O3无法修改
    -Wall选项意思是编译后显示所有警告, -W显示容易出错的警告, -w忽略警告, 一般-W -Wall一起使用
    python3 -m pybind11 --includes指定pybind11和python头文件的库, 对于python2.7改成python即可, 同时python2不需要特殊后缀, 将example`python3-config --extension-suffix`改为example.so即可

    对于编译完且含有setup.py的文件夹, 使用pip3 install .安装包即可

    相关文章

      网友评论

          本文标题:pybind11使用

          本文链接:https://www.haomeiwen.com/subject/kjdsyctx.html