首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >生成SWIG绑定时不能包含<endian.h>

生成SWIG绑定时不能包含<endian.h>
EN

Stack Overflow用户
提问于 2019-05-30 14:02:50
回答 1查看 355关注 0票数 1

下面是我的C++代码中的预处理器部分,我希望生成SWIG绑定。

代码语言:javascript
复制
#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__) \
|| defined(__OpenBSD__)
#include <machine/endian.h>
#endif
    
#if defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) || \
defined(ANDROID)
#include <endian.h>
#endif
    
#ifdef __MINGW32__
#include <sys/param.h>
#endif
    
#ifdef _MSC_VER
/* _MSVC lacks BYTE_ORDER and LITTLE_ENDIAN */
#define LITTLE_ENDIAN 0x0001
#define BYTE_ORDER LITTLE_ENDIAN
#endif
    
#if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN)
#error No byte order defined
#endif
    
#if BYTE_ORDER == LITTLE_ENDIAN
# define HIOFFSET 1
# define LOWOFFSET 0
#else
# define HIOFFSET 0    /* word offset to find MSB */
# define LOWOFFSET 1    /* word offset to find LSB */
#endif

但是当我尝试使用swig命令生成SWIG绑定时,我得到了以下错误:

错误: CPP #错误“未定义字节顺序”。使用-cpperraswarn选项继续swig处理。

似乎当SWIG尝试生成绑定时,由于某些原因,<machine/endian.h>没有被包括在内。

如何修复此错误?

我使用的是macOS 10.14.4。

代码语言:javascript
复制
%module pd
%{
    #include "myBindings.h"
%}
%include "myBindings.h"

我使用以下命令生成绑定:

代码语言:javascript
复制
swig -c++ -lua -fcompact -fvirtual -I../../../libs/openFrameworks myBindings.i && mv myBindings_wrap.cxx myBindings.cpp

然后我得到了上面提到的错误。(No byte order defined)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56372488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档