Modhanna íocaíochta Abuse

Tras-thiomsú Feidhmchláir Gotk3 Windows ar Linux

22.05.2021, 22:33

Cad é leabharlann Gotk3? Ar an gcéad dul síos, is sraith ceangail í don uirlis chruthaithe feidhmchlár grafach GTK3, atá coitianta i Linux don teanga ríomhchlárúcháin GoLang. I Linux, is féidir leat aon rud a thógáil gan earráidí. Mar sin féin, tá cláir Golang tras-ardáin, is féidir iad a thógáil do Windows freisin, mar sin d'fhéadfadh roinnt deacrachtaí a bheith ag an úsáideoir.

Is í an fhadhb atá ann ná go bhfuil Ubuntu lán d'earráidí le linn tiomsaithe. Ceann de na hearráidí is coitianta fatal error: libintl.h: No such file or directory . Léiríonn sé go bhfuil fadhb ag GoLang na comhaid ceanntásca C riachtanacha a aimsiú. Ach níl an fhadhb seo ag ArchLinux.

Tras-thiomsú feidhmchlár Got3

Chun críocha tras-thiomsúcháin, moltar d’úsáideoirí ArchLinux a úsáid le DockerHub. Uaireanta tarlaíonn earráidí agus tar éis an íomhá a íoslódáil, feicfidh tú conas iad a shocrú. Ar dtús, íoslódáil an íomhá agus rith an coimeádán, ag caitheamh an fhillteáin ina bhfuil do thionscadal isteach ann ag baint úsáide as gléasadh volume . Mar shampla, sa bhfillteán /project :

 $ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project archlinux/archlinux bash

Ligeann --rm duit an coimeádán a scriosadh tar éis duit é a fhágáil. Déantar é seo chun spás a shaoradh ar an tiomántán crua. Tá fadhb ag an íomhá is déanaí de ArchLinux le glibc , rud a chuireann cosc ar pacman oibriú. Chun seo a shocrú, rith an t-ordú seo a leanas:

 $ 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"

Bíonn fadhbanna ann uaireanta le heochracha freisin. Ní córas atá ag obair é seo, mar sin ba chóir duit fíorú pacáiste a dhíchumasú ionas nach mbeidh ort réiteach a lorg ar an bhfadhb seo gach uair. Conas a dhéantar é seo? Chun seo a dhéanamh, sa chuid [options] den chomhad /etc/pacman.conf , athraigh an paraiméadar SigLevel go Never :

 $ vim /etc/pacman.conf [options] SigLevel = Never

Ar aghaidh, nuashonraigh bunachar sonraí an phacáiste:

 $ pacman -Sy

Suiteáil na pacáistí riachtanacha:

 $ pacman -S git go vim mingw-w64-gcc cairo pango pkg-config gtk3

Beidh pacáiste amháin ó AUR ag teastáil uainn freisin. Chun é a íoslódáil, cuir an chuid seo a leanas le /etc/pacman.conf :

$ vim /etc/pacman.conf [ownstuff] SigLevel = Never Server = http://martchus.no-ip.biz/repo/arch/$repo/os/$arch

Ansin suiteáil an pacáiste:

 $ pacman -S mingw-w64-gtk3

Is fiú a thabhairt faoi deara ar leithligh go bhfuil modúil Go sa leagan is déanaí de Golang cheana féin. Mura bhfuil siad in úsáid i do thionscadal ar chúis éigin, beidh ort tosú ag baint úsáide astu. Is fearr na modúil agus na spleáchais tionscadail a chumrú i do chóras oibre agus a sheiceáil go bhfuil gach rud tógtha i gceart do Linux. Ba chóir an leagan gotk3 a thógáil ón mbrainse master , toisc nach bhfuil leaganacha níos sine tógtha leis an leagan seo den teanga:

 $ got get github.com/gotk3/gotk3 master

Ansin, téigh go dtí an fillteán tionscadail agus rith an t-ordú tógála:

 $ 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

D’fhéadfadh an tógáil tamall fada a thógáil, ach nuair a bheidh sé críochnaithe feicfidh tú an comhad críochnaithe i do fhillteán tionscadail.

Tar éis an tsuiteáil a bheith críochnaithe, feicfidh an t-úsáideoir an comhad críochnaithe i bhfillteán an tionscadail:

Tras-thiomsú Feidhmchláir Gotk3 Windows ar Linux

Chun na gníomhartha céanna a sheachaint arís agus arís eile, bain úsáid as Dockerfile speisialta:

 $ 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

B’fhéidir go mbeadh ort beagán athruithe a dhéanamh air agus é a chur ag obair.

Ní mór duit eolaire ar leith a chruthú, an comhad seo a chur ann agus an méid seo a leanas a rith:

 $ docker build

Tar éis an t-ordú a fhorghníomhú, feicfear ID an choimeádáin nua:

Tras-thiomsú Feidhmchláir Gotk3 Windows ar Linux

Ansin is féidir leat coimeádán a rith bunaithe ar an íomhá a eascraíonn as leis an ordú:

$ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project 028451c45c15 bash

Críochnaíonn sé seo na treoracha.