MinGW-w64-GCC-15.2.0

Introduksjon til MinGW-w64-GCC

MinGW-w64-GCC har blitt bygget statisk på før, og den bør bygges om for å støtte dynamisk lenking. Denne delen vil være dedikert til å fullføre MinGW-w64-verktøykjeden.

[Notat]

Notat

Dette kan ta litt tid å bygge. Gjør gjerne noe annet mens dette bygges.

MinGW-w64-GCC Avhengigheter

Påkrevd

MinGW-w64-13.0.0

Installasjon av MinGW-w64-GCC

[Notat]

Notat

Siden du sikter deg inn på en triplett som er forskjellig fra verten, å kjøre make install er generelt trygt, i motsetning til en standard installasjon av en kompilator som kan blokkere verktøykjeden fullstendig hvis den er bygget feil.

x86_64 Installasjon av MinGW-w64-GCC

Installer x86_64 MinGW-w64-GCC ved å kjøre følgende kommandoer:

mkdir build-x86_64-mingw-w64 &&
cd    build-x86_64-mingw-w64 &&

../configure --prefix=/usr               \
             --target=x86_64-w64-mingw32 \
             --enable-threads=posix      \
             --enable-shared             \
             --disable-multilib          \
             --enable-languages=c,c++ &&

make

Nå, som root bruker:

make install &&
cd ..        &&

ln -sfv x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-cc &&
strip /usr/libexec/gcc/x86_64-w64-mingw32/15.2.0/{cc1*,collect2,lto*}

i686 Installasjon av MinGW-w64-GCC

Installer i686 MinGW-w64-GCC ved å kjøre følgende kommandoer:

mkdir build-i686-mingw-w64 &&
cd    build-i686-mingw-w64 &&

../configure --prefix=/usr             \
             --target=i686-w64-mingw32 \
             --enable-shared           \
             --enable-threads=posix    \
             --disable-multilib        \
             --enable-languages=c,c++ &&

make

Nå, som root bruker:

make install &&

ln -sfv i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-cc &&
strip /usr/libexec/gcc/i686-w64-mingw32/15.2.0/{cc1*,collect2,lto*}

Teste Verktøykjeden

Nå som MinGW-w64 kryssverktøykjede er ferdig installert, det er på tide å teste installasjonen for å forsikre deg om at alt fungerer som forventet.

Bekreft at de vanlige C og C++ kompilatorene fungerer som de skal:

echo "int main(){}" >> main.c &&
cp -v main.c main.cpp &&
gcc main.c            &&
./a.out               &&

rm -v a.out           &&
g++ main.cpp          &&
./a.out               &&

rm -v a.out main.{c,cpp}

Hvis du bruker multilib:

echo "int main(){}" >> main.c &&
cp -v main.c main.cpp &&
gcc -m32 main.c       &&
./a.out               &&

rm -v a.out           &&
g++ -m32 main.cpp     &&
./a.out               &&

rm -v a.out main.{c,cpp}

Test nå MinGW-w64 krysskompilatoren.

For x86_64:

cat >> main.c << "EOF" &&
#include <stdio.h>
int main(){}
EOF

cp main.{c,cpp}                        &&
sed -i 's/stdio.h/iostream/g' main.cpp &&

x86_64-w64-mingw32-gcc main.c   &&
rm -v a.exe                     &&
x86_64-w64-mingw32-g++ main.cpp &&
rm -v a.exe main.{c,cpp}

For i686:

cat >> main.c << "EOF" &&
#include <stdio.h>
int main(){}
EOF

cp main.{c,cpp}                        &&
sed -i 's/stdio.h/iostream/g' main.cpp &&

i686-w64-mingw32-gcc main.c   &&
rm -v a.exe                   &&
i686-w64-mingw32-g++ main.cpp &&
rm -v a.exe main.{c,cpp}

Kommandoene ovenfor skal ikke ha noen feil, ellers gikk det noe galt med installasjonen.

Parameterforklaringer

[Notat]

Notat

Kjør ../configure --help for en fullstendig liste over alternativer.

mkdir build; cd build: GCC dokumentasjonen anbefaler at man bygger pakken i en dedikert byggemappe.

--enable-shared: Dette alternativet aktiverer bygging av delte biblioteker.

--enable-threads=posix: Dette alternativet aktiverer støtte for POSIX tråder via winpthreads biblioteket.

--disable-multilib: Dette alternativet sikrer at filer opprettes for den spesifikke arkitekturen til datamaskinen din.

--enable-languages=c,c++: Denne kommandoen bygger støtte for C og C++. Se https://www.linuxfromscratch.org/blfs/view/systemd/general/gcc.html for å finne ut hvilke andre språk som støttes.

make -k check: Denne kommandoen kjører testpakken uten å stoppe hvis det oppstår feil.

../contrib/test_summary: Denne kommandoen vil produsere et sammendrag av resultatene fra testpakken. Du kan legge til | grep -A7 Summ til kommandoen for å produsere en enda mer kondensert versjon av sammendraget. Du kan også omdirigere resultatet til en fil for gjennomgang og sammenligning senere.

Innhold

Det finnes ingen binærfiler spesifikke for denne pakken bortsett fra formatet kompilatorene sikter seg inn på, og de har derfor arkitekturtripletten som prefiks, for eksempel x86_64-w64-mingw32-gcc. For dyptgående beskrivelser, les https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/gcc.html#contents-gcc.