Stap 2: Compileren de toolchain
Compileren van gcc duurt lang, dus ik let's get het begon en terwijl het compileren is kun je de uitleg voor alles hieronder lezen. Dit is de veronderstelling dat gcc en maak al op uw systeem zijn geïnstalleerd. Zoniet moet u deze installeren.
CD ~/Downloads
sudo apt-get install texinfo verwachten libx11-dev g ++ flex bison libncurses5-dev
sudo mkdir /opt/msp430-toolchain mkdir bouwen cd bouwen
export PREFIX = / opt/msp430-toolchain
exporteren van TARGET = msp430-geen-elf
export PATH = $PREFIX/bin: $PATH
.. /sources/tools/configure--target = $TARGET--prefix = "$PREFIX"--programma-prefix = msp430---enable-languages = c--disable-nls
Controleer alle
Nu zijn uitgevoerd, hier is de verdeling van wat je net deed.
sudo apt-get install texinfo verwachten libx11-dev g ++ flex bison libncurses5-dev
Hier zijn we het installeren van pakketten die nodig zijn voor het compileren van gcc
- texinfo: hulpprogramma om te helpen met het maken van documentatie in verschillende indelingen
- verwachten: programma dat met andere programma's interactief worden gebruikt in scripts praat
- libx11-dev: X11 windowing systeem ontwikkelingspakket
- g ++: gnu C++ compiler
- Flex: snelle lexicale analyse generator
- Bison: parser generator
- libncurses5-dev: scherm verwerking en optimalisatie pakket, in feite een terminal upgrade
Zoals hierboven vermeld, als u momenteel niet beschikt over gcc en al is geïnstalleerd maken, moet u ze toevoegen aan deze lijst.
sudo mkdir /opt/msp430-toolchain
Dit is de directory waarin de toolchain zal worden geïnstalleerd. Persoonlijk zou ik graag mijn toolchains onder de map "/ opt" installeren. Deze map is eigendom van root en andere gebruikers alleen kunnen lezen en uitvoeren zodat telkens als die u op deze map installeren u als root doen moet.
mkdir te bouwen
CD bouwen
Vervolgens hebben we een build-map maken. Een zeer belangrijke opmerking over het compileren van gcc is dat je niet kan bouwen in de bronmap. Als u probeert, bent u zeer waarschijnlijk om bouwfouten.
export PREFIX = / opt/msp430-toolchain
exporteren van TARGET = msp430-geen-elf
export PATH = $PREFIX/bin: $PATH
Vóór de bouw van gcc, moeten sommige variabelen van het milieu worden ingesteld. We willen niet dat ze als systeem breed of permanent dus we hen alleen in de context van onze shell instellen zullen. Hiervoor gebruiken we de opdracht exporteren. De omgevingsvariabelen die gedefinieerd zijn:
- PREFIX-de map waar uw cross-compiler wordt geïnstalleerd
- DOEL-de doelarchitectuur in de indeling-- of iets dergelijks (zijn niet echt goed gedefinieerd). In ons geval is de boog msp430, doel-os is geen omdat het blote metaal ontwikkeling zal zijn, en de output elf formaat is
- PAD-het systeempad, al gedefinieerd maar wij moeten locatie van de binaire bestanden die zullen we bouwen aan het toevoegen
.. /sources/tools/configure--target = $TARGET--prefix = "$PREFIX"--programma-prefix = msp430---enable-languages = c--disable-nls
Zoals met de meeste gnu programma's, is de build omgeving gebaseerd op automake/autoconf. Deze hulpprogramma's kunnen vrij ingewikkeld om te begrijpen en de parameters die u hebt doorgeven aan hen zijn soms onduidelijk en slecht gedocumenteerd. In principe is dit wat moeten gebeuren:
- Het configure script passeren de vereiste argumenten die worden gedefinieerd door het configuratiebestand voor een bepaald programma uitvoeren
- Het script analyseert uw systeem voor verschillende afhankelijkheden en van de informatie die het verzamelt, is het kundig voor genereren van makefiles, configuratiebestanden en soms headerbestanden die compatibel is met uw systeem. Als u niet bekend bent met de makefiles, zal Maak je geen zorgen over het voor nu, ik een les gewijd aan hen. Soms kunnen niet afhankelijkheden opgelost worden in dat geval mislukt de configuratie (of bouwen)
- Compileren van de code
- Installeer het programma
In het geval van gcc, het configure script accepteert vele argumenten maar slechts een paar zijn nodig in de meeste gevallen. Het doel en de prefix-argument zijn zoals hierboven beschreven in de sectie van de variabelen milieu. De programma-prefix voegt simpelweg een voorvoegsel aan alle binaire bestanden, dus bijvoorbeeld gcc wordt msp430-gcc. Dit is handig als u wilt dat een makefile die dezelfde code voor vele architecturen kan bouwen. Bijvoorbeeld, als ik compileren main.c voor msp430 zowel arm wilde, ik kon mijn compiler als definiëren $(target)-gcc en vervolgens configureren met target = msp430 gebruiken msp430-gcc te configureren met doel = arm voor het gebruik van de arm-gcc. De vlag van disable-nls vertelt de build uitschakelen Native Language Support (NLS), die in feite betekent dat gcc uitgangen alleen diagnostiek in het Engels. Tot slot, vertelt inschakelen-talen het build systeem te compileren van alleen de opgegeven talen. Alleen C is ingeschakeld, want dat is de taal die we zullen gebruiken. Als u geïnteresseerd in de vele andere opties voor gcc compilatie bent u kunt alles lezen over hen hier.
Een laatste ding, als u wilt volledig schoon uw build directory of herbouwen van krabben, de "make distclean" commando wordt verondersteld om dit te doen voor u, maar in mijn ervaring is het vaak niet effectief. Zijn gemakkelijker en veiliger om gewoon verwijderen van de hele directory bouwen en start opnieuw.
Gefinisht de compilatie? Als niet een koffie pauze...
Nu dat haar gedaan, hebt u om het te installeren. Aangezien / opt wordt bezeten door root, heeft de opdracht install uitgevoerd worden met sudo.
sudo maakt installeren
Hiermee kopieert u alle vereiste bestanden uit de build-map naar de map die is opgegeven met de omgevingsvariabele VOORVOEGSEL.