I have a C struct, and when I use cgo to generate Go structs, some fields 
are being ignored. I’m using go version go1.21.1 linux/amd64, and here is 
my env.

go env:

GO111MODULE='on'
GOARCH='amd64'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/root/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/root/go'
GOPRIVATE=''
GOPROXY='https://goproxy.cn,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.1'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 
-ffile-prefix-map=/tmp/go-build2970417006=/tmp/go-build 
-gno-record-gcc-switches'

and this is my C struct:
typedef struct PicHead
{
unsigned short flag;
unsigned char version[16];
unsigned int headSize;
int64_t fileSize;
unsigned int macrograph;
unsigned int personInfor;
unsigned int hierarchy;
unsigned int srcWidth;
unsigned int srcHeight;
unsigned int sliceWidth;
unsigned int sliceHeight;
unsigned int thumbnailWidth;
unsigned int thumbnailHeight;
unsigned char bpp;
unsigned char quality;
J_COLOR_SPACE colrSpace;
float scale;
double ruler;
unsigned int rate;
long long extraOffset;
long long tileOffset;
ImageFormat sliceFormat;
unsigned char headSpace[48];
}PicHead;

this is cgo gen
type _Ctype_struct_PicHead struct {
flag _Ctype_ushort
version [16]_Ctype_uchar
_ [40]byte
bpp _Ctype_uchar
quality _Ctype_uchar
colrSpace _Ctype_J_COLOR_SPACE
scale _Ctype_float
_ [8]byte
rate _Ctype_uint
extraOffset _Ctype_longlong
tileOffset _Ctype_longlong
sliceFormat _Ctype_ImageFormat
headSpace [48]_Ctype_uchar
}

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/b999871b-8341-4173-ab51-f888472fcc62n%40googlegroups.com.

Reply via email to