GOOS=linux CGO_CFLAGS="-I%BUILDPATH%/hikka/include" CGO_LDFLAGS="-L%BUILDPATH%/hikka/lib/Linux -Wl,-rpath=%BUILDPATH%/hikka/lib/Linux -lhcnetsdk" go build -ldflags "-s -w" -o build/Linux/hikka src/hikka.go
# command-line-arguments
cgo-gcc-prolog: В функции «_cgo_e19d878389bf_Cfunc_NET_DVR_CaptureJPEGPicture»:
cgo-gcc-prolog:56:68: предупреждение: в передаче аргумента 3 «NET_DVR_CaptureJPEGPicture»: несовместимый тип указателя [-Wincompatible-pointer-types]
In file included from src/hikka.go:4:
/drive/data/Linux/TEMP/builds/hikka/include/HCNetSDK.h:13330:103: замечание: ожидался тип «LPNET_DVR_JPEGPARA» {aka «struct »}, но аргумент имеет тип «struct »
13330 | NET_DVR_API BOOL stdcall NET_DVR_CaptureJPEGPicture(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, const char sPicFileName);
| ~~~~~^~~~
cgo-gcc-prolog: В функции «_cgo_e19d878389bf_Cfunc_NET_DVR_Login»:
cgo-gcc-prolog:160:79: предупреждение: в передаче аргумента 5 «NET_DVR_Login»: несовместимый тип указателя [-Wincompatible-pointer-types]
In file included from src/hikka.go:4:
/drive/data/Linux/TEMP/builds/hikka/include/HCNetSDK.h:13117:150: замечание: ожидался тип «LPNET_DVR_DEVICEINFO» {aka «struct »}, но аргумент имеет тип «struct *»
13117 | NET_DVR_API LONG stdcall NET_DVR_Login(const char sDVRIP, const WORD wDVRPort, const char sUserName, const char sPassword, LPNET_DVR_DEVICEINFO lpDeviceInfo);
| ~~~~~^~~~
# command-line-arguments
src/hikka.go:108:25: cannot use (_Ctype_struct_6)(unsafe.Pointer(&imgParams)) (type *_Ctypestruct6) as type _Ctype_struct___0 in argument to _Cfunc_NET_DVR_CaptureJPEGPicture
src/hikka.go:200:26: cannot use (_Ctype_struct_1)(unsafe.Pointer(&device)) (type *_Ctypestruct1) as type *_Ctype_struct___7 in argument to _Cfunc_NET_DVR_Login
make: *** [Makefile:7: linux] Ошибка 2
Увы, исправить своими силами путем замены NET_DVR_JPEGPARA на LPNET_DVR_JPEGPARA не удалось, не может преобразовать новый тип в Ctype_struct
ОС Manjaro x64
версия go go version go1.14.2 linux/amd64
Если необходима старая версия go, хорошо бы узнать какая версия конкретно требуется
Так же не были найдены файлы, содержащие определения тех самых _Ctype_struct___N, обычно они указываются в _cgo_gotypes.go или подобных файлах, не нашел таких.
Клонировал, установил color, пишу make и
GOOS=linux CGO_CFLAGS="-I%BUILDPATH%/hikka/include" CGO_LDFLAGS="-L%BUILDPATH%/hikka/lib/Linux -Wl,-rpath=%BUILDPATH%/hikka/lib/Linux -lhcnetsdk" go build -ldflags "-s -w" -o build/Linux/hikka src/hikka.go # command-line-arguments cgo-gcc-prolog: В функции «_cgo_e19d878389bf_Cfunc_NET_DVR_CaptureJPEGPicture»: cgo-gcc-prolog:56:68: предупреждение: в передаче аргумента 3 «NET_DVR_CaptureJPEGPicture»: несовместимый тип указателя [-Wincompatible-pointer-types] In file included from src/hikka.go:4: /drive/data/Linux/TEMP/builds/hikka/include/HCNetSDK.h:13330:103: замечание: ожидался тип «LPNET_DVR_JPEGPARA» {aka «struct »}, но аргумент имеет тип «struct »
13330 | NET_DVR_API BOOL stdcall NET_DVR_CaptureJPEGPicture(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, const char sPicFileName);
| »}, но аргумент имеет тип «struct *»
13117 | NET_DVR_API LONG stdcall NET_DVR_Login(const char sDVRIP, const WORD wDVRPort, const char sUserName, const char sPassword, LPNET_DVR_DEVICEINFO lpDeviceInfo);
|
~~~~~^~~~ cgo-gcc-prolog: В функции «_cgo_e19d878389bf_Cfunc_NET_DVR_Login»: cgo-gcc-prolog:160:79: предупреждение: в передаче аргумента 5 «NET_DVR_Login»: несовместимый тип указателя [-Wincompatible-pointer-types] In file included from src/hikka.go:4: /drive/data/Linux/TEMP/builds/hikka/include/HCNetSDK.h:13117:150: замечание: ожидался тип «LPNET_DVR_DEVICEINFO» {aka «struct~~~~~^~~~ # command-line-arguments src/hikka.go:108:25: cannot use (_Ctype_struct_6)(unsafe.Pointer(&imgParams)) (type *_Ctypestruct6) as type _Ctype_struct___0 in argument to _Cfunc_NET_DVR_CaptureJPEGPicture src/hikka.go:200:26: cannot use (_Ctype_struct_1)(unsafe.Pointer(&device)) (type *_Ctypestruct1) as type *_Ctype_struct___7 in argument to _Cfunc_NET_DVR_Login make: *** [Makefile:7: linux] Ошибка 2Увы, исправить своими силами путем замены NET_DVR_JPEGPARA на LPNET_DVR_JPEGPARA не удалось, не может преобразовать новый тип в Ctype_struct ОС Manjaro x64 версия go go version go1.14.2 linux/amd64 Если необходима старая версия go, хорошо бы узнать какая версия конкретно требуется