5

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

示例:

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

Swig 无法解析头文件中的该目录

4

2 回答 2

4

利用

-I<dir>

在 SWIG 命令行上告诉 SWIG 它不知道的包含路径。

请参阅SWIG 2.0 命令行文档

于 2013-10-21T01:57:24.610 回答
3

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

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

为此,如果您希望公开 ah、bh 和 ch 中的声明,但不希望处理系统头文件,请使用以下 .i 文件:

%module example

%{
#include "a.h"
%}

%include "a.h"
%include "b.h"
%include "c.h"
于 2013-10-26T20:08:28.827 回答