是否有可能使CGO生成跨平台标头?

时间:2018-01-31 13:14:45

标签: go cross-platform header-files cgo

这是CGO生成的标题的序言:

#ifndef GO_CGO_PROLOGUE_H
#define GO_CGO_PROLOGUE_H

typedef signed char GoInt8;
typedef unsigned char GoUint8;
typedef short GoInt16;
typedef unsigned short GoUint16;
typedef int GoInt32;
typedef unsigned int GoUint32;
typedef long long GoInt64;
typedef unsigned long long GoUint64;
typedef GoInt64 GoInt;
typedef GoUint64 GoUint;
typedef __SIZE_TYPE__ GoUintptr;
typedef float GoFloat32;
typedef double GoFloat64;
typedef float _Complex GoComplex64;
typedef double _Complex GoComplex128;

现在,尝试使用MSVC进行编译,MSVC无法确定__SIZE_TYPE__是什么或_Complex是不会飞的。我可能会想出一个额外的标题来覆盖这些差异,但我不知道CGO标题生成器还有什么其他功能。

0 个答案:

没有答案