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