在SWIG编译中:在接口的头文件中无法解析其他头文件。

时间:2013-10-18 09:28:05

标签: python interface swig

在界面文件中。我已经包含了一个头文件。在那个头文件中有很多头文件,但是来自顶层树基但是在Swig中无法识别那些

例如:

main.h
#include<dir/second.h>
#define PAGE 1

Swig无法解析头文件中的dir

2 个答案:

答案 0 :(得分:4)

使用

-I<dir>
在SWIG命令行上

告诉SWIG有关它不知道的包含路径。

请参阅SWIG 2.0 command line documentation

答案 1 :(得分:1)

SWIG通常不会递归处理#include文件。原因是您不希望SWIG处理每个系统头文件。你可以用-includeall覆盖它,但这可能不是你想要的。相反,请考虑以下包含文件:

A.H

#include <stdio.h>
#include <stdlib.h>
#include "b.h"
#include "c.h"

为此,如果希望公开a.h,b.h和c.h中的声明,但不希望处理系统头文件,请使用以下.i文件:

%module example

%{
#include "a.h"
%}

%include "a.h"
%include "b.h"
%include "c.h"