我有一个.cpp(称为trial.cpp)文件,如下所示:
#include "trial.hpp" int main() { cout << "hello"; return 0; }
我的头文件(trial.hpp)是:
#include <iostream> using namespace std;
我有一个.i文件(trial.i),如下:
%module trial %{ #include "trial.hpp" %} %include trial.hpp
我已在cmd中以以下方式使用SWIG来生成.pyd,.py,.o和.cxx文件:
swig -c ++ -python trial.i
g ++ -c trial_wrap.cxx -I C:\ Users ..... Python \ Python37 \ include
g ++ -shared trial_wrap.o -o _trial.pyd -LC:\ Users ..... \ Python \ Python37 \ libs -lpython37
文件已成功生成
但是,当我打开Python命令提示符并运行此命令时:
从试用导入*
main()
我说错了
回溯(最近通话):
文件“
”,中的第1行,> NameError:未定义名称'main'
我该如何解决此问题?
此外,如果我使用另一个函数名(例如fn1())而不是main(),则在第三条命令中会出现以下错误:
g ++ -shared trial_wrap.o -o _trial.pyd -L
C:\ Users ..... \ Python \ Python37 \ libs -l python37错误是:
对fn1()的未定义引用)
我想使用fn1()代替main()
我该如何解决这个问题?
我有一个.cpp(称为trial.cpp)文件,如下所示:#include“ trial.hpp” int main(){cout <
已解决!
改为使用这三个语句:
swig -c ++ -python trial.i