Kas ir Gotk3 bibliotēka? Galvenokārt tas ir GTK3, Linux populārā grafisko lietojumprogrammu veidošanas rīka GoLang programmēšanas valodai, sasaistes komplekts. Linux operētājsistēmā var izveidot jebko bez kļūdām. Tomēr Golang programmas ir daudzplatformu programmas, un tās var veidot arī Windows, tāpēc lietotājam var rasties zināmas grūtības.
Problēma ir tā, ka Ubuntu vide kompilēšanas laikā rada jūru kļūdu. Viena no biežāk sastopamajām kļūdām ir fatālā kļūda: libintl.h: No such file or directory.
Tā norāda uz GoLang problēmu ar pareizo C galvenes failu atrašanu. Taču ArchLinux šī problēma nepastāv.
Lai veiktu savstarpēju kompilēšanu, lietotājiem ieteicams izmantot ArchLinux ar DockerHub. Dažreiz rodas kļūdas, un pēc attēla lejupielādes redzēsiet, kā tās novērst. Pirmais solis ir lejupielādēt attēlu un palaist konteineru, pievienojot mapi ar savu projektu, izmantojot volume
mount. Piemēram, mapi /project
:
$ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project archlinux/archlinux bash
Izmantojot opciju --rm
, pēc konteinera iziešanas to var izdzēst. Tas tiek darīts, lai atbrīvotu vietu cietajā diskā. Jaunākajā ArchLinux attēlā ir problēma ar glibc
, kuras dēļ nedarbojas pacman
. Lai to novērstu, izpildiet šo komandu:
$ patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst &&
curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" &&
bsdtar -C / -xvf "$patched_glibc"
Dažreiz ir arī problēmas ar atslēgām. Šī nav darba sistēma, tāpēc jums vienkārši vajadzētu atslēgt pakotņu pārbaudi, lai katru reizi nebūtu jāmeklē risinājums. Kā to izdarīt. Lai to izdarītu, faila /etc/pacman.conf
sadaļā [options]
mainiet parametru SigLevel
uz Never
:
$ vim /etc/pacman.conf
[options]
SigLevel = Never
Pēc tam atjauniniet pakešu datubāzi:
$ pacman -Sy
Instalējiet nepieciešamās paketes:
$ pacman -S git go vim mingw-w64-gcc cairo pango pkg-config gtk3
Mums ir nepieciešama arī viena pakete no AUR
. Lai to ielādētu, pievienojiet /etc/pacman.conf
šo sadaļu:
$ vim /etc/pacman.conf
[ownstuff]
SigLevel = Never
Server = http://martchus.no-ip.biz/repo/arch/$repo/os/$arch
Pēc tam instalējiet šo paketi:
$ pacman -S mingw-w64-gtk3
Atsevišķi jāpiebilst, ka jaunākajā Golang versijā jau ir iekļauti Go moduļi. Ja kāda iemesla dēļ tie nav izmantoti jūsu projektā, jums būs jāsāk tos izmantot. Labāk ir konfigurēt projekta moduļus un atkarības savā darba sistēmā un pārbaudīt, vai viss ir pareizi uzbūvēts Linux. Gotk3 versija ir jāņem no galvenā
zara, jo vecākās versijas netiek uzbūvētas ar šo valodas versiju:
$ got get github.com/gotk3/gotk3 master
Pēc tam dodieties uz projekta mapi un palaidiet izveides komandu:
$ cd /project
CGO_CFLAGS_ALLOW=".*" CGO_LDFLAGS_ALLOW=".*"
PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1
GOOS=windows GOARCH=amd64 go build -v -tags gtk_3_24 -gcflags "-N -l" -ldflags "-s -w -H=windowsgui" -o main-windows-amd64.exe main.go
Pēc tam projekta mapē redzēsiet gatavu failu.
Pēc instalēšanas pabeigšanas lietotājs projekta mapē redzēs pabeigtu failu:
Lai izvairītos no vienādu darbību atkārtošanas katru reizi, izmantojiet īpašu Docker failu:
$ vi Dockerfile
FROM archlinux/archlinux
RUN patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst &&
curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" &&
bsdtar -C / -xvf "$patched_glibc"
RUN sed 's/SigLevel = Never/SigLevel = Never/g' /etc/pacman.conf
RUN pacman -Syu --noconfirm
RUN pacman -S git go mingw-w64-gcc cairo pango pkg-config gtk3 --noconfirm
RUN pacman -S vim --noconfirm
RUN echo "[ownstuff]" >> /etc/pacman.conf
RUN echo "SigLevel = Never" >> /etc/pacman.conf
RUN echo ''Server = http://martchus.no-ip.biz/repo/arch/$repo/os/$arch'' >> /etc/pacman.conf
RUN pacman -Sy --noconfirm
RUN pacman -S mingw-w64-gtk3 --noconfirm
Lai tas darbotos, var nākties ar to pastrādāt un veikt izmaiņas.
Jums ir jāizveido atsevišķs katalogs, jāievieto tajā šis fails un tas jāpalaiž:
$ docker build
Pēc komandas izpildes parādīsies jaunā konteinera ID:
Pēc tam varat palaist konteineru, pamatojoties uz iegūto attēlu, izmantojot komandu:
$ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project 028451c45c15 bash
Ar to instrukcija ir pabeigta.