SWIG: разница между% импорта и% включает

SWIG документы объясните эти две директивы следующим образом:

%include: "Чтобы включить другой файл в интерфейс SWIG, используйте%include директива ... В отличие от,#include, %include включает каждый файл один раз (и не будет перезагружать файл при последующих%include декларации). Поэтому нет необходимости использовать include-guard в интерфейсах SWIG ».

%import: "SWIG предоставляет другую директиву включения файла с%import директива ... Цель%import это сбор определенной информации из другого файла интерфейса SWIG или файла заголовка без фактического создания какого-либо кода оболочки. Такая информация обычно включает в себя объявления типов (например, typedef), а также классы C ++, которые могут использоваться в качестве базовых классов для объявлений классов в интерфейсе. "

Мой вопрос заключается в том, каковы различия между этими двумя директивами и каковы плюсы / минусы использования каждой из них?

Постскриптум Просто для дополнительной информации. У меня есть простое расширение C ++ - python, которое создается и работает, когда я использую одну из вышеуказанных директив. Один, однако (%import) выдает меньше предупреждений при звонкеswig -c++ -python my_file.i.

Ответы на вопрос(1)

Ваш ответ на вопрос