C++¶
Compilation¶
Le compilateur par defaut est GCC qui inclut le programme gcc pour les programmes en C et g++ pour les programmes C++.
Si nécessaire, il est aussi possible de charger un module gcc pour avoir une version différente de celle qui est installée. Par exemple:
module load gcc
Il est toutefois possible que ces versions ne fonctionnent pas adéquatement dans certaines conditions. Il est donc recommendé d'utiliser le compilateur par défaut.
module load cplex-studio
Options de compilation¶
Option | Description des Options |
---|---|
-O |
Optimiser le programme. |
-g |
Déboguer le programme |
-Wall |
Avoir plus d'avertissement à la compilation. |
-o fichier |
Spécifier le nom du programme. |
-c |
Indiquer qu'on veut seulement créer un fichier objet (.o) |
-I dir |
Ajouter des répertoires non standard où il y a des fichiers entête |
-L dir |
Ajouter des répertoires non standard où il y a de librairies |
-l nom |
Utiliser une librairie. |
Exemples¶
Si votre programme n'a qu'un seul fichier, vous pouvez utiliser la commande suivante pour créer un programme optimisé.
gcc -O -Wall -o hello hello.c
Si vous avez besoin de déboguer le programme, remplacez l'option -O
par l'option -g
.
Si votre programme a plus d'un fichier, vous pouvez utiliser la même méthode que dans le premier exemple. Cependant, il est habituel de plutôt créer des fichiers objets et ensuite d'assembler le programme. C'est ce qui fait quand on se créé un Makefile.
gcc -O -Wall -c hello1.c
gcc -O -Wall -c hello2.c
gcc -O -o hello hello1.o hello2.o
on note ici l'utilisation de l'option -c
qui permet de compiler un fichier .c
en objet .o
.
Si le programme est en C++ et non en C, on remplace la commande gcc
par
g++
g++ -O -Wall -c hello1.c
g++ -O -Wall -c hello2.c
g++ -O -o hello hello1.o hello2.o
Compilation d'un programme C utilisant cplex.
module load cplex-studio
gcc -O -Wall -DNDEBUG -DIL_STD -c lpex1.c
gcc -O -o lpex1 lpex1.o -lcplex -lm -lpthread
Compilation d'un programme C++ utilisant cplex et concert.
module load cplex-studio
g++ -O -Wall -DNDEBUG -DIL_STD -c cutstock.cpp
g++ -O -o cutstock cutstock.o -lilocplex -lconcert -lcplex -lm -lpthread
Compilation d'un programme C++ utilisant gurobi
module load gurobi
g++ -o sudoku sudoku_c++.cpp -lgurobi_g++5.2 -lgurobi100