gpt4 book ai didi

java - 定义 bool 时 SWIG 语法错误

转载 作者:行者123 更新时间:2023-11-30 19:12:49 25 4
gpt4 key购买 nike

SWIG 无法处理以下模块,并显示错误消息“example.i:2: Error: Syntax error in input(1)”

%module example
typedef unsigned char bool;
bool isEven(int number);

bool 更改为 boll 时,一切正常。似乎 SWIG 将 bool 视为 C 中的内置类型。但是,只有 _Bool 是 C99 中的内置类型,除非包含 stdbool.h

,否则不会定义 bool

我有一个大型接口(interface),需要为 java 包装,其中包含以下 typedef:

#ifndef __cplusplus
typedef unsigned char bool;
#endif

我可以通过添加来解决问题

#define __cplusplus

在包含定义接口(interface)的 header 之前添加到我的 SWIG 模块文件。然而,在这种情况下,包含 cpointer.i 不再起作用(错误:缺少 #ifdef 的标识符,该标识符出现在包含 #ifdef __cplusplus 的 cpointer.i 的每一行中)

关于如何使用我的接口(interface)头文件而不更改它(即不删除我的 bool typedef)并且仍然能够使用 cpointer.i 有什么建议吗?

最佳答案

如果您的情况确实没有定义 bool ,则使用 SWIG 接口(interface)文件中的宏将其重命名为其他内容应该没有问题,即执行以下操作:

%module example
#define bool uchar_bool
typedef unsigned char bool;
bool isEven(int number);

关于java - 定义 bool 时 SWIG 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36399885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com