IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ LinuxConsultez toutes les FAQ

Nombre d'auteurs : 56, nombre de questions : 260, dernière mise à jour : 27 juin 2022  Ajouter une question

 

Cette FAQ a été réalisée à partir des contributions des membres du forum Linux de Developpez.com et de l'équipe de rédaction. Merci à eux !

Nous sommes perpétuellement à l'écoute de vos suggestions et corrections, n'hésitez pas à nous en faire part sur le forum.

SommaireDéveloppement (10)
précédent sommaire suivant
 

Programme C :

Code c : Sélectionner tout
1
2
3
4
5
6
7
8
$ cat fichier.c 
#include <stdio.h> 
  
int main() 
{ 
printf("Hello world !\n"); 
return 0; 
}
Code bash : Sélectionner tout
1
2
3
4
$ gcc -Wall -g -o programme fichier.c 
$ ./programme 
Hello world ! 
$

L'option -Wall permet d'afficher certaines erreurs a la compilation comme des variables non utilisées ou non initialisées.

Programme C++ :

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
$ cat fichier.cpp 
#include <iostream.h> 
  
int main() 
{ 
cout << "Hello world !" << endl; 
return 0; 
}
Code bash : Sélectionner tout
1
2
3
4
$ g++ -o programme fichier.cpp 
$ ./programme 
Hello world ! 
$

L'option -o utilisée par gcc et g++ permet de spécifier le nom de l'exécutable.

Mis à jour le 24 octobre 2013 djibril Francois Trazzi ok.Idriss

Il faut compiler le projet avec l'option -g (il est important de passer tous les fichiers en argument), puis de lancer gdb.

À noter qu'il existe également un débogueur graphique : ddd (Display Data Debugger), normalement présent sur votre distribution.

Mis à jour le 7 janvier 2014 djibril MarcG ok.Idriss

Les sources d'un programme peuvent comprendre beaucoup de fichiers, incorporer des bibliothèques, etc. Taper à la main les lignes de compilation de chacun des fichiers peut donc devenir très fastidieux.

Pour simplifier les compilations de projets sous Unix, il existe l'utilitaire make : il permet d'interpréter un fichier de dépendance entre les différents éléments nécessaires à la création d'un projet. Ce fichier est appelé Makefile.

Un Makefile définit les relations entre des fichiers et établit les dépendances nécessaires à la création d'autres fichiers. Si, pour créer un fichier A, il faut utiliser un fichier B, alors il va d'abord falloir créer le fichier B.

Le travail de make est essentiellement de vérifier les dates des fichiers pour déterminer quels sont ceux qui sont à jour et ceux qu'il faut recréer afin de générer le projet. Pour chacun des fichiers à recréer, make détermine, grâce au Makefile, les bibliothèques à lier, et les arguments à passer à gcc puis lance la compilation.

Make simplifie beaucoup le travail du programmeur, puisqu'au lieu de taper les arguments de gcc à chaque compilation, il suffit de lancer make.

En général, les fichiers Makefile contiennent une cible nommée all, qui permet de générer tout le projet.

Make peut aussi être utilisé dans un autre contexte que la programmation : il permet d'effectuer des commandes de mises à jour de fichiers qui dépendent de la mise à jour d'autres fichiers.

Mis à jour le 9 novembre 2017 chrtophe djibril MarcG ok.Idriss

Ajouter dans .bashrc la ligne.

Code bash : Sélectionner tout
PATH=$PATH:.
et lancer un nouveau terminal. Ainsi, en cherchant le programme demandé dans chaque répertoire de la variable d'environnement PATH, le shell va trouver ce programme dans le répertoire courant (le répertoire .)

Mis à jour le 7 janvier 2014 Anomaly djibril

Pour tous les codeurs Java qui aiment leur manchot, voici la méthode qui leur permettra de télécharger et installer le JDK sous Linux :

1) téléchargez le JDK d'Oracle ;

2) attribuez-lui le droit d'être exécuté

Code bash : Sélectionner tout
$ chmod +x NOM_DE_VOTRE_JDK

3) exécutez-le et installez de ce fait votre JDK ;

4) attention, c'est là que ça devient chaud. Il va vous falloir configurer deux variables globales importantes : PATH et CLASSPATH. Ouvrez votre fichier ~/.bashrc (situé dans votre home) et ajoutez les lignes suivantes :

Code bash : Sélectionner tout
1
2
$ export PATH=$PATH:.:/chemin/de/votre/JDK/bin  
$ export CLASSPATH=.:/chemin/de/votre/JDK/lib/tools.jar

5) c'est fini ! Codez bien !

6) N.B. Pour ceux qui veulent généraliser PATH et CLASSPATH pour tous leurs utilisateurs, éditez les deux lignes mentionnées dans /etc/profile.

À partir de la version 1.5 Tiger, il n'y a plus à s'occuper de CLASSPATH.

Mis à jour le 7 janvier 2014 djibril GLDavid ok.Idriss

Un fichier pipe permet (entre autres) de faire dialoguer plusieurs processus entre eux sans pour autant générer par exemple des fichiers temporaires.

Code bash : Sélectionner tout
$ mknod /tmp/fichier_pipe p

ou

Code bash : Sélectionner tout
$ mkfifo /tmp/pipe

Mis à jour le 24 octobre 2013 argoet djibril narmataru

Afin de connaître les symboles que votre exécutable ou que votre bibliothèque exporte, vous pouvez utiliser l'outil nm.

Mis à jour le 7 janvier 2014 LittleWhite

Lorsque vous avez modifié votre variable PATH dans votre terminal, cette modification n'a été que locale au terminal. Lors de sa fermeture, la modification a donc été perdue.

Pour faire en sorte que la modification soit permanente, vous pouvez indiquer à votre système de la recharger systématiquement au démarrage de votre terminal. Il se trouve qu'un fichier ~/.bashrc est un script lu par le shell à chaque démarrage de celui-ci. Ainsi, en le modifiant et en mettant à jour la variable PATH comme vous le souhaitez, votre modification sera définitive.

Mis à jour le 7 janvier 2014 LittleWhite

Vous avez un crash dans une bibliothèque que vous chargez avec LD_PRELOAD ?
Si vous spécifiez LD_PRELOAD en lançant le GDB, votre LD_PRELOAD est pris en compte durant l'exécution de GDB, ce qui peut être problématique. Pour indiquer à GDB d'utiliser une définition de LD_PRELOAD spécifique, il faut lui spécifier avec set environment :

Code : Sélectionner tout
1
2
3
4
gdb votre_programme 
 
(gdb) set environment LD_PRELOAD=./votre_bibliotheque.so 
(gdb) run
Ainsi, GDB lance bien votre programme avec la bibliothèque et vous pourrez ainsi la déboguer.

Mis à jour le 25 mars 2014 LittleWhite

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.