15 | | est fourni ci-après. |
| 15 | est fourni ci-après. Toujours pour une meilleure lisibilité, réduisez la taille |
| 16 | des tabulations à 2 ou 4 caractères au lieu du defaut de 8. Enfin, n'insérez |
| 17 | jamais le caractère ''tabulation'' dans votre code source, configurez votre |
| 18 | éditeur favori pour que celui-çi substitue automatiquement des espaces blanc |
| 19 | ordinaires à la place d'une tabulation. |
| 20 | |
| 21 | Pour '''{{{vim}}}'''/'''{{{gvim}}}''', ajouter dans votre {{{~/.vimrc}}} les lignes |
| 22 | suivantes: |
| 23 | {{{ |
| 24 | :set shiftwidth=2 |
| 25 | :set expandtab |
| 26 | |
| 27 | :autocmd FileType c,cpp set cindent |
| 28 | :autocmd FileType make set noexpandtab shiftwidth=8 |
| 29 | }}} |
| 30 | |
| 31 | Pour '''{{{emacs}}}''', ajoutez dans votre {{{~/.emacs}}} les lignes suivantes: |
| 32 | {{{ |
| 33 | ;; CC-Mode configuration. |
| 34 | (defun local-c-mode-hook () |
| 35 | (setq c-echo-syntactic-information-p t |
| 36 | c-basic-offset 2 |
| 37 | tab-width 4 |
| 38 | indent-tabs-mode nil) |
| 39 | (c-set-offset 'topmost-intro 0) |
| 40 | (c-set-offset 'inclass '++) |
| 41 | (c-set-offset 'access-label '-) |
| 42 | (c-set-offset 'comment-intro '-) |
| 43 | (c-set-offset 'arglist-cont-nonempty 'c-lineup-arglist-close-under-paren) |
| 44 | (c-set-offset 'arglist-close 'c-lineup-arglist-close-under-paren) |
| 45 | (c-set-offset 'defun-block-intro '+) |
| 46 | (c-set-offset 'statement-block-intro '+) |
| 47 | (c-set-offset 'block-close 0) |
| 48 | (c-set-offset 'case-label '+) |
| 49 | (c-set-offset 'statement-case-intro '+)) |
| 50 | (add-hook 'c-mode-common-hook 'local-c-mode-hook) |
| 51 | |
| 52 | (setq auto-mode-alist |
| 53 | (cons '("\\.\\(h\\|hh\\|hpp\\)\\'" . c++-mode) |
| 54 | auto-mode-alist)) |
| 55 | }}} |
| 56 | |
| 57 | [[Image(indentation-1.png,70%,align=center)]] |
| 58 | |
| 59 | |
| 60 | == Compilation == |
| 61 | |
| 62 | Dans le cadre de ce premier TME, nous allons nous contenter de faire de la compilation |
| 63 | monolithique. C'est à dire que tout le code de chaque exercice sera contenu dans un |
| 64 | seul fichier source, par exemple {{{Box.cpp}}}. L'éxécutable sera créé par compilation |
| 65 | de cet unique fichier. |
| 66 | |
| 67 | Compilation monolithique d'un fichier source: |
| 68 | {{{ |
| 69 | g++ -Wall -g -o box Box.cpp |
| 70 | }}} |
| 71 | Ici, l'éxécutable généré sera {{{box}}}. Attention l'argment {{{-o}}} doit immédiatement |
| 72 | être suivi du nom de l'éxécutable ({{{box}}}). |
| 73 | |
| 74 | Autres arguments donnés à {{{g++}}}: |
| 75 | * {{{-g}}} demande d'inclure le code nécessaire pour pouvoir utiliser un débogueur |
| 76 | ({{{gdb}}} ou {{{ddd}}}). |
| 77 | * {{{-Wall}}} demande d'afficher tous les avertissements. Vous devrez toujours |
| 78 | utiliser ce drapeau ({{{flag}}}) et à l'issue de la mise au point, votre programme |
| 79 | ne devra générer aucun avertissement. |
| 80 | |