Aller au contenu

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