gpt4 book ai didi

python - 错误 : unknown type name ‘class’ using SWIG

转载 作者:行者123 更新时间:2023-11-30 05:09:53 25 4
gpt4 key购买 nike

每当我通过终端运行以下代码时,就会产生一个错误。这是我的代码:数字.h:

class Number{
public:
Number(int start);
void add(int x);
void sub(int x);
void display();
int data;
};

数字.cxx:

#include <iostream>
#include "number.h"

using namespace std;
Number::Number(int start){
data=start;
}
void Number::add(int x){
data=data+x;
}
void Number::sub(int x){
data=data-x;
}
void Number::display(){
cout<<"Data is "<<data<<endl;
}

编号.i:

%module number
%{
#include "number.h"
%}

%include number.h

最后,setup.py:

from distutils.core import setup, Extension

name="number"
version="1.0"

ext_modules=Extension(name="_number",sources=["number.i","number.cxx"])

setup(name=name,
version=version,
ext_modules=[ext_modules])

运行 python setup.py install 后,出现错误 error: unknown type name ‘class’ 为什么会这样?

最佳答案

SWIG 默认编译需要 C。将 swig_opts=['-c++'] 作为参数添加到 Extension。更正其他 C++ 错误后,这是使用 Microsoft 编译器为我工作的 setup.py:

from distutils.core import setup, Extension

name="number"
version="1.0"

ext_modules=Extension(name="_number",
sources=["number.i","number.cxx"],
swig_opts=['-c++'],
extra_compile_args=['/EHsc'])

setup(name=name,
version=version,
ext_modules=[ext_modules])

演示:

>>> import number
>>> n=number.Number(5)
>>> n.display()
Data is 5
>>> n.add(2)
>>> n.display()
Data is 7

关于python - 错误 : unknown type name ‘class’ using SWIG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com