Mikä on Gotk3-kirjasto? Se on ensisijaisesti joukko sidoksia GTK3:een, joka on Linuxissa suosittu graafisten sovellusten luontityökalu GoLang-ohjelmointikielelle. Linuxissa voit rakentaa mitä tahansa ilman virheitä. Golang-ohjelmat ovat kuitenkin alustarajat ylittäviä, ja niitä voidaan rakentaa myös Windowsille, joten käyttäjällä voi olla vaikeuksia.
Ongelmana on, että Ubuntu-ympäristö tuottaa käännettäessä virhemerta. Yksi yleisimmistä virheistä on fatal error: libintl.h: No such file or directory
. Se kertoo GoLangin ongelmasta oikeiden C-otsikkotiedostojen löytämisessä. Tätä ongelmaa ei kuitenkaan ole ArchLinuxissa.
Ristikompilointia varten käyttäjille suositellaan ArchLinuxin käyttöä DockerHubin kanssa. Joskus ilmenee virheitä, ja kuvan lataamisen jälkeen näet, miten ne korjataan. Ensimmäinen vaihe on ladata imago ja käynnistää kontti mounttaamalla kansio, jossa projektisi on, käyttämällä volume
mountia. Esimerkiksi /project-kansioon
:
$ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project archlinux/archlinux bash
Käyttämällä --rm-vaihtoehtoa
voit poistaa kontin poistumisen jälkeen. Tämä tehdään, jotta kiintolevyltä vapautuu tilaa. Viimeisimmässä ArchLinux-kuvauksessa on ongelma glibc:n
kanssa, jonka vuoksi pacman
ei toimi. Voit korjata sen suorittamalla tämän komennon:
$ 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"
Myös avainten kanssa on joskus ongelmia. Tämä ei ole toimiva järjestelmä, joten sinun kannattaa vain poistaa pakettien tarkistaminen käytöstä, jotta sinun ei tarvitse etsiä ratkaisua joka kerta. Miten tämä tehdään. Tee tämä muuttamalla /etc/pacman.conf-tiedoston
[options]-osiossa
SigLevel-parametrin
arvoksi Never
:
$ vim /etc/pacman.conf
[options]
SigLevel = Never
Päivitä seuraavaksi pakettitietokanta:
$ pacman -Sy
Asenna tarvittavat paketit:
$ pacman -S git go vim mingw-w64-gcc cairo pango pkg-config gtk3
Tarvitsemme myös yhden paketin AUR:
sta. Voit ladata sen lisäämällä tämän kohdan tiedostoon /etc/pacman.conf
:
$ vim /etc/pacman.conf
[ownstuff]
SigLevel = Never
Server = http://martchus.no-ip.biz/repo/arch/$repo/os/$arch
Asenna sitten paketti:
$ pacman -S mingw-w64-gtk3
Erikseen mainittakoon, että Golangin uusin versio sisältää jo Go-moduulit. Jos niitä ei jostain syystä käytetä projektissasi, sinun on alettava käyttää niitä. On parempi konfiguroida projektin moduulit ja riippuvuudet työjärjestelmälläsi ja tarkistaa, että kaikki on rakennettu oikein Linuxille. Gotk3-versio tulisi ottaa master-haarasta
, koska vanhempia versioita ei rakenneta tämän kieliversion kanssa:
$ got get github.com/gotk3/gotk3 master
Siirry seuraavaksi projektikansioon ja suorita build-komento:
$ 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
Rakentaminen voi kestää melko kauan, mutta kun se on valmis, näet valmiin tiedoston projektikansiossa.
Kun asennus on valmis, käyttäjä näkee valmiin tiedoston projektikansiossa:
Voit välttää samojen vaiheiden toistamisen kerta toisensa jälkeen käyttämällä erityistä Docker-tiedostoa:
$ 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
Saatat joutua korjailemaan sitä ja tekemään muutoksia saadaksesi sen toimimaan.
Sinun on luotava erillinen hakemisto, sijoitettava tämä tiedosto siihen ja suoritettava se:
$ docker build
Kun komento on suoritettu, uuden kontin tunnus tulee näkyviin:
Sitten voit käynnistää kontin saadun kuvan perusteella komennolla:
$ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project 028451c45c15 bash
Tämä viimeistelee ohjeen.