[Intégrés] outils de développement Linux bras-linux-gcc installation et d'utilisation

outils de développement Linux conçus pour faire et makefile

Structure et niveau de connaissance - compilation du programme et le débogage

Insérer ici l'image Description

Intégré configuration d'installation du compilateur croisé

cible hôte modèle de développement du conseil d'administration

Insérer ici l'image Description

  • Host
    compilation, logiciels embarqués lien

  • La machine cible
    en cours d' exécution du logiciel embarqué, plate - forme matérielle

  • compilateur « Local »
    pour générer le code objet qui fonctionne sous le compilateur lui - même où le même ordinateur et l' environnement du système d'exploitation (plates - formes), Windows tels que l' environnement Windows pour générer le code objet.

  • compilateur croisé
    Utilisé pour générer le code objet pour fonctionner sur d'autres plates-formes, telles que l'environnement Windows Linux génère le code objet.

Sous microprocesseur ARM / Linux compilateur système

Les règles de nommage du compilateur
arch [-vendor] [-os] [-(gnu)eabi]-工具名称

  • arch- architectures, comme ARM , MIPS
  • vendor- les fournisseurs de la chaîne d'outils, le nom du processeur ou les fabricants de panneaux développement
  • os- les systèmes d'exploitation cible, tels que Linux
  • (gnu) eabi- l'utilisation des bibliothèques, y compris glibc , EABI , uclibc trois types

exemple: arm-none-eabi-gcc

  • Système nu métal utilisé pour compiler l'architecture ARM

exemple:arm-none-linux-gnueabi-gcc

  • Pour les systèmes Linux basés sur l' architecture ARM, sur la base du CCG, l' utilisation de la bibliothèque glibc
    après société CodeSourcery compilateur optimisé pour introduit la compilation de l'architecture ARM u-boot, le noyau Linux, les applications Linux.

Plusieurs répertoires importants:
répertoire de l' outil compilateur:FriendlyARM/toolchain/4.9.3/bin

Insérer ici l'image Description

Le répertoire des fichiers d'en-tête du compilateur:FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root/usr/include

répertoire de fichiers de bibliothèque:FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root/usr/lib

Téléchargez et installez le compilateur

Vous pouvez aller sur le site officiel à télécharger, http://www.linaro.org/downloads/
mais plus lentement, peut être téléchargé directement avec moi.
Liens: Code d'extraction https://pan.baidu.com/s/1jL_G6kbTC9h_bF8HHXBWxw: 67u4

1. Tout d'abord déplacer le paquet à installer le répertoire tmp téléchargible le répertoire racine (/ tmp)

2. Utilisation commande tar pour extraire le paquet d'installation, la commande suivante est entré dans le terminal :( précédentes autorité racine d'indication de sudo pour exécuter la commande)

sudo tar -xjvf /tmp/arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 -C /

Notez que les majuscules lettres C, cette commande choisir d'installer le paquet et extraire le répertoire racine TuxamitoSoftToolchains intérieur (/ opt / TuxamitoSoftToolchains)

3. Une fois l'extraction terminée, puis créez un nouveau répertoire dans le bras (/ usr / local), à savoir, entrez la commande suivante dans le terminal:

sudo mkdir /usr/local/arm

Après avoir créé un bras de répertoire avec succès, doivent également donner à libérer tous les privilèges qui entrent dans la commande suivante dans le terminal:

sudo chmod 777 /usr/local/arm

4. Recherchez l'extrait du répertoire et copiez le répertoire complet gcc-4.6.4 dans le répertoire de bras nouvellement construit, la commande est la suivante:
premier cd gcc 4.6.4-répertoire (après le passage du premier coup d' oeil il ls aucun répertoire gcc-4.6.4):

cd /opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/

Et puis exécutez la commande copie cp, -r représenter quoi que ce soit à l'intérieur, ainsi que le répertoire entier

sudo cp -r gcc-4.6.4 /usr/local/arm

5. ouverte (/ etc / profile) des variables d'environnement de base de données de configuration et des variables, l'objet doit être utilisé plus tard dans une position quelconque de l'instruction de compilateur croisé est suit en tant que:

sudo vi /etc/profile

Après vi ou vim ouvert, en ajoutant deux lignes à la fin du fichier, et entrer le code ci-dessous: La première ligne est d'ajouter l'exécution du programme de variables d'environnement, la deuxième ligne est le chemin du fichier bibliothèque

export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib

Puis retirerai.
Insérer ici l'image Description
6. Utilisez la commande source pour recharger le fichier de configuration pour prendre effet

source /etc/profile

7. Vérifiez que l'installation a réussi, la version de sortie d'informations Entrez la commande suivante dans le Terminal:

arm-linux-gcc -v

Insérer ici l'image Description

Outil bras-linux-gcc

bras-gcc-linux syntaxe: arm-linux-gcc [ option | filename ]...
Dans des circonstances normales, produire un nouveau besoin de programme pour passer par quatre étapes: pré - traitement, compilateur, assembleur, éditeur de liens
, bien sûr , nous pouvons décider quelles mesures pour compiler les opérations effectuées par la fin du paramètre
plage de paramètres dans Linux demander l'aide de l'environnement:man arm-linux -gcc


-E

  • Seul le fichier prétraiter , mais ne pas compiler, assembler et lien.

exemple:
arm-linux -gcc -E hello.c -o hello1.c

prétraitement, le contenu HELLO.c:
Insérer ici l'image Description
après prétraitement, le contenu Hello1.c:
Insérer ici l'image Description


-S

  • Seul le fichier compilé (fichier généré assembleur .s) , mais ne compile pas et lien.

Exemple: arm-linux -gcc -S hello.c
l'exemple ci - dessus va générer un fichier compilé de hello.s
Insérer ici l'image Description


-c

  • Seul le fichier compilé et assemblé, mais il est pas lié, ce qui signifie que seule la marque du programme fichier obj.

exemple: arm-linux -gcc -c hello.c –o hello.o


-o

  • Indiquez le nom de la cible, le temps par défaut, le compilateur gcc est a.out fichier

Exemple:
arm-linux -gcc hello.cLa compilation par défaut hello.out
arm-linux -gcc -o hello.bin hello.ccible nom est hello.bin
arm-linux -gcc -o hello.s -S hello.c


-include file

  • Il contient un code qui, en termes simples, est de compiler un fichier lorsque vous avez besoin d' un autre fichier, vous pouvez l' utiliser pour fonction ensemble est équivalent à utiliser dans votre code #include.

exemple:arm-linux -gcc hello.c -include type.h


-I dir

  • Si vous utilisez le #include"file"temps, gcc / g ++ regardera d' abord dans le répertoire courant que vous avez spécifié dans les fichiers d' en- tête, si elle est introuvable, le compilateur par défaut dans le répertoire de fichiers d' en- tête pour trouver;
  • Si vous utilisez un -Irépertoire spécifié, le compilateur regardera d' abord le répertoire que vous spécifiez, puis appuyez sur la route séquentielle classique.

exemple: arm-linux -gcc -o hello -I/xxx/include hello.c

-I

  • Avant fonction de suppression est un paramètre, il est généralement -I diraprès utilisation
    Insérer ici l'image Description

-iprefix prefix et -iwithprefix dir

Ces deux paramètres sont généralement utilisés conjointement, lors d' -Iune recherche dans l'annuaire échoue, pour prefix+dirtrouver la prochaine


-l库名

  • Indique les bibliothèques de temps de compilation utilisées ( bibliothèque statique .a / DLL .donc )

Exemple: arm-linux-gcc -lpthread hello.c
Indique l'utilisation de phtread.cla bibliothèque

-L目录

  • Compile le temps spécifié, le chemin de recherche de la bibliothèque. Par exemple, votre bibliothèque, vous pouvez -Lspécifier le répertoire dans lequel votre bibliothèque, sinon le compilateur ne trouvera que dans le répertoire de la bibliothèque standard . dirC'est le nom du répertoire.

exemple:
arm-linux-gcc –L./ hello.c –o hello
Insérer ici l'image Description


optimisation de gcc

Fournir gcc afin de répondre aux différents niveaux d'optimisation des besoins des utilisateurs et de fournir près d' une centaine de sortes d' options d'optimisation, utilisés pour { compilation , la taille du fichier cible , l'efficacité } Ce modèle en trois dimensions d'un compromis de différentes et d' équilibre. Méthodes d' optimisation et ainsi de suite, dans son ensemble aura les catégories suivantes:

  1. Réduire l'instruction de fonctionnement;
  2. Essayez de rencontrer le pipelining cpu;
  3. Par deviner le comportement du programme, réajustement séquence de code d'exécution;
  4. La pleine utilisation des registres;
  5. Appels à simple expansion, etc.

-O0, -O1, -O2, -O3
O0: ne faites pas d' optimisation, qui est le défaut des options du compilateur
O3: plus haut niveau d'optimisation


-g

  • Le compilateur génère des informations de débogage au moment de la compilation.

exemple:
arm-linux –gcc –o hello -g hello.c
Insérer ici l'image Description


Travail à domicile

(1) appartenant à l'élément de chien de garde ( module de matériel ), qui est une fonction de base ( code logiciel de détection d'emballement ) et ( lorsque le système est « court » dans la boucle et de rétablir le fonctionnement du système ).

(2) en supposant que le code C fun.c, qui est compilé en code objet fun.o, commande de la compilation arm-linux-gcc -c fun.c -o fun.o, si l'on utilise une fonction de bibliothèque fun.c libcurses.a, et qui, avec le Smartfun main.c exécutable compilé , la commande du compilateur arm-linux-gcc -c fun.c main.c -lcurses -o smartfun.

Publié 170 articles originaux · louange gagné 47 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43734095/article/details/104941659
conseillé
Classement