Warning: ob_start() [ref.outcontrol]: output handler 'ob_gzhandler' cannot be used after 'URL-Rewriter' in /home.32/c/e/l/celles/www/wikini/wakka.php on line 824
www.celles.net:DevelOutilsGNU

www.celles.net

DevelOutilsGNU

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes 38.103.63.60
  Devel C++ >>



Introduction aux outils GNU




Le compilateur C gcc (ou le compilateur C++ g++)





Les étapes de la compilation

En fait le compilateur gcc appelle plusieurs programmes pour créer le fichier exécutable.
Il y a 4 étapes :

Compilation en C






Les étapes de la compilation en C++

  • Preprocessing .cc (.cpp) -> .ii (code C++ après prepocessing)
  • Compilation .ii -> .S (fichier assembleur)
    cc1plus
  • Assemblage .S -> .o (fichier objet)
  • Edition de liens .o -> fichier_executable


  • D'autres options de gcc










    fichier header .h à inclure

    bibliothèque à inclure (.so shared object)
    http://fr.wikipedia.org/wiki/Biblioth%C3%A8que_logicielle
    http://en.wikipedia.org/wiki/Library_%28computing%29

    inclure la libSDL (idem avec n'importe quelle libxyz : on utilise -lxyz)
    En général la lib est présente dans le répertoire /usr/lib

    permet de générer une bibliothèque dynamique
    http://www.xgarreau.org/aide/devel/libclinux/p2.php

    Autres compilateurs C

    LLVM Low Level Virtual Machine http://llvm.org/
    PCC Portable C compiler http://pcc.ludd.ltu.se/
    SDCC Small Device C Compiler http://sdcc.sourceforge.net/

    D'autres outils pour programmer


    Debug



    Makefile

    La commande make permet d'interpréter un fichier Makefile.
    Créer un Makefile permet d'accélérer le processus de compilation car seuls les fichiers modifiés sont compilés, c'est le principe de la compilation séparée.
    On crée un fichier objet (.o) à partir d'un code source (.c) grâce à l'option -c de gcc.
    gcc fichier1.c -c crée un fichier fichier1.o
    gcc fichier2.c -c crée un fichier fichier2.o
    On lie ensuite les deux fichiers objets :
    gcc fichier1.o ficher2.o -o fichier_executable


    Un Makefile minimal (sans compilation séparée)
    all:
    gcc -o main *.c

    Quelques articles

    http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/120/lg120-D.html Utilisation de la collection de compilateurs de GNU



    Autotools

    Il s'agit des outils autoconf, automake, ...
    Ces commandes permettent de créer une installation standard d'un programme à partir des sources via les commandes :
    ./configure
    make
    make install





    Alternative aux autotools

    CMake, qmake, scons, waf, ...

    diff / patch

    La commande diff permet de créer un patch.
    La commande patch permet de l'appliquer.


    sur des fichiers en local

    diff -Nur v1/main.c v2/main.c
    -r : récursif
    -u : format de sortie unifiée
    -N : pour comparaison de rpertoire lorsqu'un fichier est absent

    diff -u v1/main.c v2/main.c > patch_v1_v2/main.c.diff (ou .patch)

    patch -p1 < patch_v1_v2/main.c.diff

    sur un serveur de version CVS

    cvs diff -u > ~/dacode.patch



    internationalization (i18n) / localization(l10n)




    Autres liens sur le développement avec des outils GNU


    http://www.amath.washington.edu/~lf/tutorials/autoconf/toolsmanual_toc.html
    http://www.google.fr/search?hl=fr&q=developing+software+with+gnu
    http://www.cnfreeos.org/Document/developing_software_with_gnu.pdf
    http://nix-adm.org/Document/developing_software_with_gnu.pdf

    Autres outils

    objdump (binutils) : désassembleur
    thumb

    Cross-compilation / compilation croisée


    Debuggage de cible distante


    Analyse statique de code

    GGCC http://www.ggcc.info
    Frama-C http://frama-c.cea.fr
    Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]