该SWIG文档解释了这两个指令如下:
%include:"要包含其他文件到了一大口接口,使用%include指令...不像,#include,%include包括每个文件一次(而不会重新加载后的文件%include声明).因此,没有必要在痛饮接口,包括使用的得分后卫. ".
%import:"SWIG提供了另一个带有%import指令的文件包含指令......目的%import是从另一个SWIG接口文件或头文件中收集某些信息,而不实际生成任何包装器代码.这些信息通常包括类型声明(例如,typedef)as以及可能用作接口中类声明的基类的C++类."
我的问题是这两个指令之间的区别是什么,使用每个指令的利弊是什么?
PS只是为了一些背景信息.我有一个简单的C++ - python扩展,当我使用上述任何一个指令时,它可以构建和工作.但是,%import当我打电话时,()会给出较少的警告swig -c++ -python my_file.i.
Nic*_*las 10
SWIG的工作方式是假定您提供的任何有效C++声明都要暴露给目标语言.因此,提供SWIG的任何C++代码都将用于生成接口.
%import是一种包含机制,可防止为其包含的代码生成接口.这就是区别.因此,在包含标题时,您要问的问题是"我是否希望此标题中的所有内容都暴露给目标语言?" 如果答案是"否",那么你使用%import.
| 归档时间: |
|
| 查看次数: |
3313 次 |
| 最近记录: |