Я пытаюсь построить exe для windows amd64, используя golang.Все работает без сбоев, кроме «go run» или «go build».Процесс сборки прерывается при компиляции пакета gcc с github.com/andlabs/ui.Трассировка выглядит следующим образом:
$ go build
# gitlab.com/asnossascenas/dbRegistration/ui
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiNewTable':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:66: undefined reference to `uiNewTable'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiNewTableModel':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:83: undefined reference to `uiNewTableModel'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableAppendTextColumn':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:103: undefined reference to `uiTableAppendTextColumn'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableGetSelection':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:120: undefined reference to `uiTableGetSelection'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableIterAdvance':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:138: undefined reference to `uiTableIterAdvance'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableIterCurrent':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:168: undefined reference to `uiTableIterCurrent'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `realuiTableOnSelectionChanged':
C:/GoPath/src/gitlab.com/asnossascenas/dbRegistration/ui/table.go:12:
undefined reference to `uiTableOnSelectionChanged'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiFreeTableModel':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:49: undefined reference to `uiFreeTableModel'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableIterComplete':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:152: undefined reference to `uiTableIterComplete'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableModelRowChanged':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:184: undefined reference to `uiTableModelRowChanged'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableModelRowDeleted':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:198: undefined reference to `uiTableModelRowDeleted'
C:\Users\Pat\AppData\Local\Temp\go-
build167765418\gitlab.com\asnossascenas\dbRegistration\ui\_obj\table.cgo2.o:
In function `_cgo_1e2a701ee86d_Cfunc_uiTableModelRowInserted':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:212: undefined reference to `uiTableModelRowInserted'
C:\Users\Pat\AppData\Local\Temp\gobuild167765418\gitlab.com
\asnossascenas\dbRegistration\ui\_obj\tablemodelhandler.cgo2.o: In function
`_cgo_1e2a701ee86d_Cfunc_uiTableModelStrdup':
/tmp/go-build\gitlab.com\asnossascenas\dbRegistration\ui\_obj/cgo-gcc-
prolog:68: undefined reference to `uiTableModelStrdup'o `uiTableModelStrdup'
function `msgbox':
C:/GoPath/src/gitlab.com/asnossascenas/
dbRegistration/ui/libui_windows_amd64.a(stddialogs.cpp.obj): In function
`msgbox':E:/github.com/andlabs/libui/windows/stddialogs.cpp:113: undefined
reference to `__imp_TaskDialog'
collect2.exe: error: ld returned 1 exit status
Первоначально я пытался выполнить кросс-компиляцию из linux в windows с примерно такой же проблемой, поэтому я думаю, что это либо флаги, которые я должен использовать для его сборки, либо, возможно, я пропустилчто-то связанное с зависимостями ...
Я пытался использовать CGO_ENABLED = 1 и почти любую другую комбинацию флагов, возможных в linux для кросс-компиляции, иногда вызывая ошибку
gcc: error: unrecognized command line option ‘-mthreads’
, в конце концов я решил, что долженперейдите на Windows и скомпилируйте изначально, что, похоже, не работает.
Я готов предоставить любую дополнительную информацию, которая может вам понадобиться, чтобы помочь мне разобраться в этом.