SWIG: diferencia entre% importación y% incluido
losDocumentos SWIG Explique estas dos directivas de la siguiente manera:
%include
: "Para incluir otro archivo en una interfaz SWIG, use el%include
directiva ... a diferencia de#include
, %include
incluye cada archivo una vez (y no volverá a cargar el archivo en posteriores%include
declaraciones). Por lo tanto, no es necesario usar include-guards en las interfaces SWIG ".
%import
: "SWIG proporciona otra directiva de inclusión de archivos con el%import
directiva ... el propósito de%import
es recopilar cierta información de otro archivo de interfaz SWIG o un archivo de encabezado sin generar realmente ningún código de envoltorio. Dicha información generalmente incluye declaraciones de tipo (por ejemplo, typedef), así como clases de C ++ que pueden usarse como clases de base para declaraciones de clase en la interfaz. "
Mi pregunta es ¿cuáles son las diferencias entre estas dos directivas y cuáles son las ventajas y desventajas de usar cada una?
PD Sólo por alguna información de fondo. Tengo una simple extensión de C ++ - python que se construye y funciona cuando uso cualquiera de las directivas anteriores. Uno, sin embargo (%import
) da menos advertencias cuando llamoswig -c++ -python my_file.i
.