下面是我的C++代码中的预处理器部分,我希望生成SWIG绑定。
#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。
%module pd
%{
#include "myBindings.h"
%}
%include "myBindings.h"
我使用以下命令生成绑定:
swig -c++ -lua -fcompact -fvirtual -I../../../libs/openFrameworks myBindings.i && mv myBindings_wrap.cxx myBindings.cpp
然后我得到了上面提到的错误。(No byte order defined
)
https://stackoverflow.com/questions/56372488
复制相似问题