Outils pour utilisateurs

Outils du site


playground:playground

Pour compiler un programme en C sur une machine Linux, on peut utiliser une commande comme:

gcc -o hello hello.c 

Pour un programme C++ on peut utiliser:

g++ -o hello hello.cc 

Si vous utilisez le compilateur forte (SOLARIS unix) les commandes ressembleront à:

cc -o hello hello.c 

ou

CC -o hello hello.cc 

Dans tous les cas on obtient un programme qui s'appelle « hello ».

On peut ensuite ajouter toutes sortes d'options selon ce qu'on désire faire. Par exemple avec gcc on peut vouloir ajouter des avertissements et optimiser son programme. La ligne de compilation ressemblerait à ceci:

gcc -O -Wall -o hello hello.c 

Si on utilise des librairies qui ne sont pas dans un endroit connu du compilateur, il faudra ajouter des options additionnelles pour que les entêtes et les librairies soient trouvées (options -I et -L). Dans le cas de gcc, il utilise implicitement les variables d'environnement CPATH et LIBRARY_PATH. Cela permet de simplifier grandement les lignes de compilations. Ces variables sont définies dans le module lorsque des outils le requièrent.

Un exemple avec cplex pourrait ressembler à ceci (après avoir chargé le module cplex):

gcc -Wall -m64 -DNDEBUG -DIL_STD -O -o lpex1 lpex1.c -lcplex -lm -lpthread 

Par contre avec le compilateur forte il faudrait plutôt écrire quelque chose comme:

cc -Wall -O -DNDEBUG -DIL_STD -I/home/ibm/cplex/12.1/include -L/home/ibm/cplex/12.1/lib/x86-4_debian4.0_4.1/static_pic -o lpex1 lpex1.c -lcplex -lm -lpthread 

Pour cette raison, il existe les variables CPATH_EXPANDED et LIBRARY_PATH_EXPANDED qui peuvent être utilisées pour raccourcir un peu les lignes de compilation:

cc -Wall -O -DNDEBUG -DIL_STD $CPATH_EXPANDED $LIBRARY_PATH_EXPANDED -o lpex1 lpex1.c -lcplex -lm -lpthread  

On se rend compte que les lignes de compilation peuvent devenir longues et complexes rapidement et que si on les utilise fréquement cela n'est pas très pratique. Dans la prochaine section, nous expliquerons une autre façon de faire les compilations.

Voici un exemple simple de programme C que nous allons utiliser

hello.c
#include <stdio.h>
 
int main(void);
 
int main(void) {
  printf("Hello\n");
  return 0;
}
playground/playground.txt · Dernière modification: 2014/07/21 20:24 de admin