SWIG不支持include_next GNU指令



我正在尝试使用swig为用C++编写的库生成python绑定。

当我在Debian GNU/Linux 10 上运行时

swig -I/usr/include 
-I/usr/include/c++/8 
-I/usr/include/c++/8/tr1 
-I/usr/include/linux 
-I/usr/include/x86_64-linux-gnu 
-I/usr/include/x86_64-linux-gnu/c++/8 
-I/usr/share/swig3.0/python 
-I$(KALDI_ROOT)/tools/openfst/src/include 
-I$(KALDI_ROOT)/src 
-includeall -c++ -python ConstArpaLmRescoring.i

输出是

/usr/include/c++/8/cstdlib:75: Error: Unknown SWIG preprocessor directive: include_next (if this is a block of target language code, delimit it with %{ and %})
/usr/include/c++/8/bits/std_abs.h:38: Error: Unknown SWIG preprocessor directive: include_next (if this is a block of target language code, delimit it with %{ and %})
/usr/include/c++/8/bits/c++0x_warning.h:32: Error: CPP #error "This file requires compiler and library support 
for the ISO C++ 2011 standard. This support must be enabled 
with the -std=c++11 or -std=gnu++11 compiler options.". Use the -cpperraswarn option to continue swig processing.
/usr/include/c++/8/cmath:45: Error: Unknown SWIG preprocessor directive: include_next (if this is a block of target language code, delimit it with %{ and %})
make: *** [Makefile:38: all] Error 1

包含include_next指令的文件为cmathcomplex.hcstdlibstdlib.htgmath.hfenv.hmath.hbits/std_abs.h

你建议用什么解决方案来解决这个问题?

删除-includeall。这试图递归地为包含的每个头文件中的每个函数制作swig包装器。您通常只需要自定义API头中的函数。

相关内容

  • 没有找到相关文章

最新更新