bras-linux-gcc
- Structure et niveau de connaissance - compilation du programme et le débogage
- Intégré configuration d'installation du compilateur croisé
- cible hôte modèle de développement du conseil d'administration
- Sous microprocesseur ARM / Linux compilateur système
- Téléchargez et installez le compilateur
- Outil bras-linux-gcc
- `-E`
- `-S`
- `` -C
- `-o`
- `-Include fichier`
- `Et dir`
- `-i`
- `` -Iprefix prefix` 和 -iwithprefix dir`
- `` -L nom de la bibliothèque
- `` Répertoire -L
- optimisation de gcc
- Travail à domicile
outils de développement Linux conçus pour faire et makefile
Structure et niveau de connaissance - compilation du programme et le débogage
Intégré configuration d'installation du compilateur croisé
cible hôte modèle de développement du conseil d'administration
-
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 , MIPSvendor
- les fournisseurs de la chaîne d'outils, le nom du processeur ou les fabricants de panneaux développementos
- 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
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.
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
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:
après prétraitement, le contenu Hello1.c:
-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
-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.c
La compilation par défaut hello.out
arm-linux -gcc -o hello.bin hello.c
cible 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
-I
ré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 dir
après utilisation
-iprefix prefix
et -iwithprefix dir
Ces deux paramètres sont généralement utilisés conjointement, lors d' -I
une recherche dans l'annuaire échoue, pour prefix+dir
trouver 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.c
la bibliothèque
-L目录
- Compile le temps spécifié, le chemin de recherche de la bibliothèque. Par exemple, votre bibliothèque, vous pouvez
-L
spécifier le répertoire dans lequel votre bibliothèque, sinon le compilateur ne trouvera que dans le répertoire de la bibliothèque standard .dir
C'est le nom du répertoire.
exemple:
arm-linux-gcc –L./ hello.c –o hello
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:
- Réduire l'instruction de fonctionnement;
- Essayez de rencontrer le pipelining cpu;
- Par deviner le comportement du programme, réajustement séquence de code d'exécution;
- La pleine utilisation des registres;
- 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
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
.