概述
这是头文件,
class dyndiff_data_t { private: double H[3]; double GAMMA; double k; double P; public: dyndiff_data_t(double H_[3],const double GAMMA_,const double k_,const double P_); void test(); };
这是swig接口文件,
%module twowave %{ #define SWIG_FILE_WITH_INIT #include <twowave.h> %} %include "numpy.i" %init %{ import_array(); %} %apply (double IN_ARRAY1[3]) {(double H_[3])}; %include <twowave.h>
问题是对于数组输入,SWIG抱怨没有类型映射.我不明白为什么. numpy.i文件取自here,我正在使用的类型映射描述为here
任何帮助,将不胜感激.
%apply (int DIM1,double* IN_ARRAY1) {(int len,double* H_)}
而不是编写自己的类型图,只需使用carrays.i.
如果你想写一个类型图,例如取一个双打元组作为输入,它看起来像:
%typemap(in) double TUPLE[ANY] { ... }
%apply double TUPLE[3] {double H_[3]}
在尝试找出无法使用类型映射的原因时,一个好的开始是使用-tmsearch选项运行SWIG.在尝试匹配您的函数参数时,它会告诉您它正在寻找什么.
总结
以上是编程之家为你收集整理的python – SWIG:没有定义任何类型图全部内容,希望文章能够帮你解决python – SWIG:没有定义任何类型图所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧