L'organisation générale d'un code en C++
consiste à séparer les classes et fonctions dans des fichiers différents et d'inclure ces fichiers dans le principal (souvent appelé main.cpp
). Plus précisément, afin de gagner du temps lors de la compilation de main.cpp
et de ne pas devoir tout recompiler à chaque fois, on met les déclarations des fonctions qui seront appelées plus tard (dans d'autres fichiers) dans des fichiers.h
et les définitions dans des fichiers.cpp
associés. Seuls les fichiers.h
seront inclus par des #include
. En conséquence, les décalarations des fonctions utiles, classes, ainsi que les définitions des choses templatées doivent figurer dans les fichiers.h
inclus.
Pour compiler séparément un fichier auxiliaire aux.cpp
, il suffit de taper:
g++ -I. -c aux.cpp -o aux.o
Pour compiler le fichier principal main.cpp
qui inclut aux.h
, et en faire un exécutable nommé exec
, il faudra d'abord compiler main.cpp
à proprement parler:
g++ -I. -c main.cpp -o main.o
puis linker les fichiers entre eux, c-à-d lier main.o
et aux.o
correctement de façon à construire un exécutable nommé exec
:
g++ -I. -o exec main.o aux.o