C/C++

Les utilisateurs du CC-IN2P3 ont plusieurs compilateurs du langage C/C++ à leur disposition.

Compilateurs GNU

GNU a développé des compilateurs pour les langages C/C++ fournis avec le systeme Linux.

  • gcc est le compilateur GNU pour le langage C. La commande pour compiler est gcc (ou cc).
  • g++ est le compilateur GNU fourni avec le systeme Linux. La commande pour compiler est g++ (ou c++).

Pour connaître la version du compilateur faites :

% gcc -v
% cc -v
% g++ -v

Vous pouvez changer de version avec la commande ccenv gcc <version>. Pour voir les versions disponible il faut faire la commande ccenv gcc --list.

La documentation est disponible via la commande :

% man gcc
% man g++

Compilateurs PGI

Le CC-IN2P3 dispose d’un certain nombre de licences flottantes (via FlexLM) pour l’utilisation du compilateur C/C++ fourni par PGI (Portland group). Pour compiler votre code source avec ces compilateurs, il faut initialiser l’environnement par la commande ccenv pgi <version>.

  • pgcc est le compilatuer PGI pour le langage C, la commande pour compiler est pgcc
  • pgc++ est le compilatuer PGI pour le langage C++, la commande pour compiler est pgc++
  • pgdbg est le deboguer
  • pgprof est le profiler

Pour consulter les options de la commande pgcc et pgc++, faites :

% ccenv pgi 19.7
% man pgcc
% man pgc++

Veuillez trouver ici la documentation PGI officielle.

Voici un exemple de compilation :

% ccenv pgi 19.7
% pgcc -O -c test.c

Si vous voulez faire l’édition des liens (linker) et exécuter votre programme avec la bibliothèque CERN (CERNLIB), il faut ajouter la bibliothèque libg2c.a fournie avec le compilateur g77 avec laquelle la CERNLIB a été compilé. La même remarque est valable pour les bibliothèques compilées avec g77 (comme la bibliothèque NAG par exemple).

% ccenv pgi 19.7
% set g2c = '-lg2c'
% pgcc -O -o test  test.c   `cernlib`  -lpthread  -lm ${g2c}
% ./test

Compilateur Intel

Le CC-IN2P3 dispose d’un certain nombre de licences flottantes (via FlexLM) pour l’utilisation des compilateurs fourni par Intel.

Ce logiciel regroupe un ensemble de compilateurs : C, C++ et Fortran avec le deboggeur interactif idb et avec les bibliothèques :

  • MKL (Math Kernel Library) ;
  • IPP (Integrated Performance Primitives) ;
  • Threading Building Blocks for Linux.

Pour compiler votre code source avec ce compilateur, il faut initialiser l’environnement par la commande ccenv intel <version> et utiliser la commande icc. Pour voir les versions disponibles il faut faire la commande ccenv intel --list. Pour consulter les options de la commande icc , faites :

% ccenv intel 2019
% man icc

Voici un exemple de compilation :

% ccenv intel 2019
% icc -O -c test.c

Si vous voulez faire l’édition des liens (linker) et exécuter votre programme avec la bibliothèque CERN (CERNLIB), il faut ajouter la bibliothèque libg2c.a fournie avec le compilateur g77 avec laquelle la CERNLIB a été compilé. La même remarque est valable pour les bibliothèques compilées avec g77 (comme la bibliothèque NAG par exemple).

% ccenv intel 2019
% set g2c = '-lg2c'
% icc -O -o test    test.c  `cernlib`  -lpthread  -lm  ${g2c}
% ./test

Veullez trouver ici la documentation Intel C++ offcielle.

Bibliothèques NAG

L’accès à la bibliothèque NAG C se fait en chargeant l’environnement (utilisez l’option --list pour avoir la liste des bibliothèques disponibles) :

% ccenv Nag_C <NAG product code>

Pour une documetation detaillée, veuillez vous référee au site de l’editeur.