1.編寫cpp文件
#include "pycpp.h"
#include <iostream>using namespace std;PyCpp::PyCpp(){}void PyCpp::sayHello(int a){cout << "Hello Python, I am C++."<<a << endl;
}
2.編寫頭文件(聲明變量)
class PyCpp{
public:PyCpp();void sayHello(int a);
};
// 不能定義編譯器生成的特殊成員函數(必須首先在類中聲明)
3.編寫.i文件,用于鏈接
%module pycpp%{
#include "pycpp.h"
%}%include "pycpp.h"
4.在同級目錄下放python.h(去conda的env里面找)
5.下載swig運行代碼
swig -c++ -python 1/pycpp.i
生成_wrap.cxx
6.編寫setup.py
from distutils.core import setup, Extension
pycpp_module = Extension('_pycpp',sources=['pycpp.cpp', 'pycpp_wrap.cxx',],)
setup (name = 'pycpp',version = '0.1',author = "NZACH",description = """Simple swig C\+\+/Python example.""",ext_modules = [pycpp_module],py_modules = ["pycpp"],)
7.運行setup.py
python setup.py build_ext --inplace
8.使用
>>> import pycpp
>>> pycpp.PyCpp().sayHello(12)
Hello Python, I am C++.12