Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 理解Swig教程示例中的重复_Python_Swig - Fatal编程技术网

Python 理解Swig教程示例中的重复

Python 理解Swig教程示例中的重复,python,swig,Python,Swig,我是学游泳的新手。我很感兴趣的是在一个Ubuntu机器上从Python调用C++。 我刚开始看这里的介绍教程 考虑该页面上的接口文件示例.i如下所示复制 /* example.i */ %module example %{ /* Put header files here or function declarations like below */ extern double My_variable; extern int fact(int n); extern int my_mo

我是学游泳的新手。我很感兴趣的是在一个Ubuntu机器上从Python调用C++。 我刚开始看这里的介绍教程

考虑该页面上的接口文件
示例.i
如下所示复制

 /* example.i */
 %module example
 %{
 /* Put header files here or function declarations like below */
 extern double My_variable;
 extern int fact(int n);
 extern int my_mod(int x, int y);
 extern char *get_time();
 %}

 extern double My_variable;
 extern int fact(int n);
 extern int my_mod(int x, int y);
 extern char *get_time();
为什么文件的后半部分重复了
%{%}
之间的内容?如手册所示

%{%}块提供了插入其他代码的位置, 例如C头文件或附加的C声明 生成的C包装器代码


但它并没有解决示例中重复的问题。我遗漏了什么?

%{
%}
之间的代码逐字插入生成的SWIG包装中,并用于让包装代码访问列出的标题或声明

这些标记之外的代码指示SWIG为列出的每个声明(或整个头文件)制作包装

如果您遗漏了
extern-int-fact(intn)
在第一部分中,包装器在编译并链接到包含该函数的源或库时,将无法访问该函数,因为外部声明将丢失。如果忽略第二部分,将不会生成包装器来从脚本语言访问它

有一条捷径:

%inline %{
...
%}

它指示SWIG同时插入和包装声明。

%{
%}
之间的代码逐字插入生成的SWIG包装中,并用于让包装代码访问列出的标题或声明

这些标记之外的代码指示SWIG为列出的每个声明(或整个头文件)制作包装

如果您遗漏了
extern-int-fact(intn)
在第一部分中,包装器在编译并链接到包含该函数的源或库时,将无法访问该函数,因为外部声明将丢失。如果忽略第二部分,将不会生成包装器来从脚本语言访问它

有一条捷径:

%inline %{
...
%}
这将指示SWIG同时插入和包装声明