使用 swig 包装时避免 "unused typedef" 警告

Avoid "unused typedef" warnings when wrapping with swig

我使用 swig 作为包装器从我的 python 代码中调用 c++ 函数。我的问题是,生成了很多以下类型的警告,因为我包含了 Boost 库的一部分。

/usr/local/include/boost/math/special_functions/bessel.hpp:744:4: warning: unused typedef
  'boost_static_assert_typedef_747' [-Wunused-local-typedef]

有没有办法避免这种情况?我想使用

-isystem /usr/local/include

作为标志而不是

-I /usr/local/include

会解决问题。但是我必须在哪里添加它?后一个选项目前在我的 setup.py:

中实现
#!/usr/bin/env python

"""
setup.py file for SWIG spherical_overlap
"""

from distutils.core import setup, Extension


spherical_overlap_module = Extension('_spherical_overlap',
                       sources=['spherical_overlap_wrap.cxx', 'spherical_overlap.cpp'],
                           swig_opts=['-c++', '-py3'],
                           extra_compile_args =['-lboost_system '],
                           include_dirs = ['/usr/local/include'],
                           )

setup (name = 'spherical_overlap',
       version = '0.1',
       author      = "SWIG Docs",
       description = """Simple swig spherical_overlap from docs""",
       ext_modules = [spherical_overlap_module],
       py_modules = ["spherical_overlap"],
       )

如果您只想避免警告,您可以添加 -Wno-unused-local-typedef 选项