Au secours, ça compile pas !!

Pourquoi ? Repérer les erreurs
Corriger les warnings
Quelques exemples

Repérer les erreurs

Le lancement de la commande de compilation, si tout ce passe bien, doît afficher la séquence suivante :

  $> cmt make
  ------> (Makefile.header) Rebuilding constituents.make
  ------> (constituents.make) Rebuilding setup.make Darwin.make
  CMTCONFIG=Darwin
  ...
  ...
  ...
  all ok.

Mais la vie n'est pas toujours si simple, et de nombreux bug se glissent souvent dans votre code à l'insu de votre plein gré. Dans ce cas là, votre commande de compilation ne se terminera pas par "all ok", mais par ceci par exemple :

  > ../src/bonjour.cpp: In function 'int main()':
  > ../src/bonjour.cpp:16: error: 'Cout' was not declared in this scope

Donc, Attention à bien vérifier le résultat de votre commande de compilation!

L'erreur est toujours signalée par le mot error. Le compilateur précise aussi :

Exemple :

      src/bonjour.cpp:153: error: expected `}' before 'else'
    
Attention : Parfois, il se peut qu'une première erreur en entraine toute une vague. Exemple il vous manque une accolade :
  src/bonjour.cpp:153: error: expected `}' before 'else'
  src/bonjour.cpp:153: error: expected `}' before 'else'
  src/bonjour.cpp:156: error: break statement not within loop or switch
  src/bonjour.cpp: At global scope:
  src/bonjour.cpp:159: error: expected declaration before '}' token

La première erreur en entrainant une autre, il est fortement recommandé de commencer par corriger la première avant de passer à la suivante.

Corriger les warnings

De même, il est important de corriger les warnings de compilation. Ceux-ci apparaissent sous la forme :

  src/bonjour.cpp:92: warning: unused variable 'titi'

Quelques exemples

Valid XHTML 1.0! Valid CSS!
Enseignement Lal<ens@lal.in2p3.fr>
Last modified: Wed Aug 20 10:55:12 CEST 2008