Các SWIG docs giải thích hai chỉ thị này như sau:SWIG: Sự khác biệt giữa% nhập khẩu và% bao gồm
%include
: "Để bao gồm một tập tin vào một giao diện SWIG, sử dụng các chỉ thị%include
... Không giống như,#include
,%include
bao gồm mỗi tệp một lần (và sẽ không tải lại tệp trên các khai báo%include
tiếp theo). Do đó, không cần sử dụng các trình bao gồm trong các giao diện SWIG. "%import
: ". SWIG cung cấp một chỉ thị tập tin bao gồm với các chỉ thị%import
... Mục đích của%import
là để thu thập thông tin nhất định từ một tập tin giao diện SWIG hoặc một tập tin tiêu đề mà không thực sự tạo ra bất kỳ mã wrapper Những thông tin này thường bao gồm tờ khai loại (ví dụ: typedef) cũng như các lớp C++ có thể được sử dụng như là cơ sở-lớp dành cho khai báo lớp trong giao diện. "
câu hỏi của tôi là sự khác nhau giữa hai chỉ thị này là gì và những gì là ưu/khuyết điểm của việc sử dụng mỗi?
P.S. Chỉ cho một số thông tin cơ bản. Tôi có một phần mở rộng C++ - python đơn giản xây dựng và hoạt động khi tôi sử dụng một trong các chỉ thị trên. Tuy nhiên, một (%import
) có ít cảnh báo hơn khi tôi gọi swig -c++ -python my_file.i
.