【发布时间】:2013-05-12 06:41:10
【问题描述】:
SWIG docs 解释这两个指令如下:
%include:“要将另一个文件包含到 SWIG 界面中,请使用%include指令......与#include不同,%include包含每个文件一次(并且不会重新加载文件)后续%include声明)。因此,没有必要在 SWIG 接口中使用包含防护。”%import:“SWIG 提供了另一个带有%import指令的文件包含指令 ...%import的目的是从另一个 SWIG 接口文件或头文件中收集某些信息,而不实际生成任何包装器代码。此类信息通常包括类型声明(例如 typedef)以及可能用作接口中类声明的基类的 C++ 类。"
我的问题是这两个指令之间有什么区别以及使用它们的优缺点是什么?
附:只是为了一些背景信息。我有一个简单的 C++ - python 扩展,当我使用上述任一指令时,它可以构建和工作。但是,当我调用 swig -c++ -python my_file.i 时,一个 (%import) 发出的警告较少。
【问题讨论】: