例如,我有test.cpp
:
#include<iostream>
using namespace std;
void hello(){
cout<<"Hello World!"<<endl;
}
我写test.i
:
%module test
%{
#include<iostream>
%}
void hello();
当我编译test_wrap.cxx时,它告诉我hello() is not declare
,并将test.i
更改为:
%module test
%{
#include<iostream>
void hello();
%}
void hello();
它通过编译,我很困惑,因为我看到%{
%{
中没有写demos函数声明,为什么我们需要写
void hello();
两次?
答案 0 :(得分:2)
python3 program.py
和%{
之间的代码将直接复制到生成的包装器中。包装器需要知道%}
是外部的。
void hello();
和%{
标记之外的代码会生成包装代码,因此%}
会为该函数生成包装代码。
为避免重复,您可以使用:
void hello();
这两者都将代码添加到包装器并生成包装器。