使用 SWIG 构建错误
Posted
技术标签:
【中文标题】使用 SWIG 构建错误【英文标题】:build error with SWIG 【发布时间】:2018-07-31 12:12:42 【问题描述】:我正在尝试开始使用 SWIG 构建 Python 扩展,但我立即发现了一个错误。可能解决方法很简单,但是我还没有找到解决方法。
我想包装一个简单的 C add() 函数:
/* sample.h */
extern int add(int, int);
我的 sample.i 文件是:
// sample.i - Swig interface
%module sample
%
#include "sample.h"
%
我的 setup.py 文件是:
# setup.py
from distutils.core import setup, Extension
setup(name='sample',
py_modules=['sample.py'],
ext_modules=[
Extension('_sample',
['sample_wrap.c'],
include_dirs = [],
define_macros = [],
undef_macros = [],
library_dirs = [],
libraries = ['sample']
)
]
)
然后我尝试通过运行来编译扩展模块:
python setup.py build_ext --inplace
但我从链接器收到一个错误,指出 sample.lib 丢失。
【问题讨论】:
创建一个minimal reproducible example。您是否构建了 sample.lib? 【参考方案1】:我了解这个问题。 sample.I 中的库行是不需要的。 问题解决了。
【讨论】:
以上是关于使用 SWIG 构建错误的主要内容,如果未能解决你的问题,请参考以下文章
Python 错误:在 SWIG 生成的 C++ 模板代码模块中未定义构造函数