Maksājuma metodes Abuse

Gotk3 lietojumprogrammu savstarpēja kompilēšana Windows operētājsistēmai Linux

22.05.2021, 22:33

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.

Gotk3 lietojumprogrammu savstarpēja kompilēšana

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:

Gotk3 lietojumprogrammu savstarpēja kompilēšana Windows operētājsistēmai Linux

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:

Gotk3 lietojumprogrammu savstarpēja kompilēšana Windows operētājsistēmai Linux

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.