使用 swig 包装时避免“未使用的 typedef”警告
Posted
技术标签:
【中文标题】使用 swig 包装时避免“未使用的 typedef”警告【英文标题】:Avoid "unused typedef" warnings when wrapping with swig 【发布时间】:2015-10-28 14:06:15 【问题描述】:我使用 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
添加到extra_compile_args
。
【参考方案1】:
如果您只想避免警告,可以添加-Wno-unused-local-typedef
选项
【讨论】:
以上是关于使用 swig 包装时避免“未使用的 typedef”警告的主要内容,如果未能解决你的问题,请参考以下文章
在使用许多 SWIG 生成的模块时避免重复的 SWIG 样板