[Plan du site]
Vous êtes ici ---
> Le Site du Zéro
> Les tutoriels
> Non-Officiels
> Programmation
> Environnements de développement
> Compiler sans IDE sous Windows
> Lecture du tutoriel
Compiler sans IDE sous Windows
Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Las des
IDE ? Envie de fouiner un peu ? D'avoir le contrôle de vos programmes ? De faciliter la portabilité d'un programme ?
Ce tutoriel est fait pour vous ! Vous y apprendrez comment compiler vos programmes de manière indépendante et ainsi utiliser votre éditeur de texte préféré.
Je vous conseille d'avoir quelques notions pour commencer ce tutoriel, la
première partie du cours de M@teo21 devrait suffire amplement.
L'utilisation d'un
IDE relève du choix personnel et des besoins de chacun, les personnes qui veulent juste coder sans avoir à se préoccuper d'autre chose choisiront un
IDE, alors que les personnes qui ont déjà l'habitude d'un éditeur de texte, qui aiment avoir le contrôle sur ce qu'ils font ou qui n'aiment pas l'idée d'installer toute une suite de logiciels pour faire un simple programme choisiront de garder leur éditeur et d'installer un compilateur séparément.
Si vous avez l'habitude d'un éditeur au point de ne plus être productif avec un autre, il vaut mieux choisir d'installer les outils séparément ; si vous débutez, que vous n'avez pas l'habitude d'un éditeur en particulier, mieux vaut prendre un
IDE.
Dans mon cas, après avoir longtemps codé en
PHP avec
Notepad++, j'ai acquis une certaine maîtrise du logiciel, de sa configuration et des raccourcis claviers, en essayant un
IDE j'ai été assez dérouté, je me suis rendu compte que j'utilisais très souvent des raccourcis claviers sans m'en rendre compte. Si vous êtes dans ce cas, je vous conseille fortement de suivre ce tutoriel.
Utiliser les outils séparément vous permettra aussi une transition plus facile vers Linux, les outils étant les mêmes.
MinGW est une suite de compilateurs et d'outils pour compiler sous Windows ; grâce à lui, vous pourrez compiler des programmes en C, C++, Java, Objective-C, ADA et autres.
MinGW inclut aussi un outil très important :
Make.
Make est un programme qui permet une compilation automatisée de vos programmes, ce qui évite de passer trop souvent par la ligne de commande : quand on lance Make dans un répertoire, il va y chercher un fichier nommé "
Makefile" (la convention veut qu'une majuscule soit appliquée sur le "M" de "Makefile") et exécuter les instructions qui y sont contenues suivant la syntaxe de Make. Autrement dit, on lance Make et on peut lancer son programme.
MinGW est un projet Open-Source libre, et contrairement à d'autres (comme CygWin), il ne vous impose pas d'utiliser une licence particulière sur les programmes que vous compilez.
Téléchargement
Pour utiliser
MinGW, il faudra d'abord le télécharger sur la
page de téléchargement du projet MinGW sur
SourceForge.
Il y a beaucoup de choses sur cette page ; nous, nous allons télécharger l'installeur
MinGW : c'est un programme qui va se charger pour nous de télécharger et d'installer les différents composants de
MinGW. Pour ce faire, déroulez la section "
Current" puis la sous-section "
MinGW" ; sélectionnez ensuite la dernière version disponible, il s'agit de la version 5.1.3 à la date d'écriture de ce tutoriel.
Pour vous aider, voici une capture d'écran de ce que vous devez prendre :
Installation
Lancez ensuite le programme et suivez les instructions : lorsque l'on vous demandera à choisir entre "
Candidate", "
Previous" et "
Current", choisissez "
Current", ça signifie que vous allez télécharger la dernière version stable des programmes.
Arrivé à l'étape du choix des outils, choisissez "
g++" (pour compiler en C/C++) et "
MinGW Make", vous devriez avoir ceci sous les yeux :
Validez, le programme commencera alors à télécharger et installer les outils. Le poids total des outils choisis approche les 17 Mo.
Si à un moment vous obtenez cette erreur :
c'est que vous avez un téléchargement parallèle qui prend trop de bande passante, ou alors que vous faites une mise à jour Windows qui bloque le téléchargement : attendez la fin de votre mise à jour et recommencez.
Configuration
Une fois installé, il reste quelques modifications à faire ; pour commencer, il faut indiquer l'emplacement des programmes de
MinGW à Windows, sans ça, Make ne fonctionnera pas.
Faites un clic-droit sur le "
Poste de travail" et allez dans le menu "
Propriétés", choisissez ensuite l'onglet "
Avancé" et cliquez sur "
Variable d'environnement". Modifiez la variable système "
Path" et ajoutez-y "
C:\MinGW\bin" : n'oubliez pas de mettre un point-virgule pour séparer ce chemin du chemin précédent. Cette variable indique à Windows dans quels dossiers sont les programmes utilisables directement en ligne de commande, c'est-à-dire que vous n'avez pas à taper le chemin complet du programme pour y accéder. (Exemple : il faudra taper "
g++" au lieu de "
C:\MinGW\bin\g++.exe".)
Au final vous devriez obtenir ceci :
Il reste ensuite une dernière petite modification à faire : dans le répertoire "
C:\MinGW\bin", copiez le fichier "
mingw32-make.exe" et renommez la copie en "
make.exe". Ça permettra d'être encore plus flemmard en rédigeant le Makefile.
Le Makefile
Pour commencer, nous allons faire un premier projet tout simple en C++, un "Hello World", uniquement pour tester si tout est bien en place.
Créez d'abord votre
main.cpp, il devrait ressembler à ceci :
Code : C++1
2
3
4
5
6
7 | #include <iostream>
int main(int argc, char *argv[])
{
std::cout << "Hello World !" << std::endl;
return EXIT_SUCCESS;
}
|
Il faut maintenant créer un fichier Makefile : n'étant pas là pour vous apprendre à créer un fichier Makefile (et surtout, je ne suis pas en mesure de vous l'apprendre

) je vais vous en donner un tout prêt.
Le voici :
Code : Autre1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| CC=g++
CFLAGS=-W -Wall -ansi -pedantic -pedantic-error -s -O3 -Os
LDFLAGS=
EXEC=Hello.exe
SRC= $(wildcard *.cpp)
OBJ= $(SRC:.cpp=.o)
all: $(EXEC)
Hello.exe: $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS)
%.o: %.cpp
$(CC) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
del /F *.o
mrproper: clean
del /F $(EXEC) |
Ne cherchez pas à tout comprendre ; moi-même, je ne comprends pas tout. Je vais tout de même préciser deux-trois trucs.
Les premières lignes sont des variables, la variable
CC indique le compilateur à utiliser (en l'occurrence g++ vu que nous compilons du C++ ; nous aurions codé en C, nous aurions utilisé gcc) la variable
CFLAGS indique les paramètres du compilateur, les flags "
-W -Wall -ansi -pedantic -pedantic-error" sont utilisés pour avoir le maximum d'erreurs possibles, ce qui signifie donc qu'on aura un programme plus propre et mieux codé au final. Le reste concerne l'optimisation du programme. La variable
LDFLAGS est censée contenir les paramètres pour le Linker, c'est lui qui assemble le programme à partir de ce que donne le compilateur.
Le Batch
Maintenant, pour compiler, nous avons deux choix :
- passer par la console Windows, c'est long et fastidieux
- passer par un fichier Batch, c'est rapide et simple.
Nous allons prendre la deuxième solution. (N'oubliez pas que les programmeurs sont de grosses feignasses, c'est même la raison d'être de l'informatique.

)
Un fichier Batch est un fichier texte contenant une succession de commandes Windows, l'extension de ces fichiers est
.bat.
Notre fichier Batch ne fera que quelques lignes, mais quand vous compilez dix fois d'affilée, ces quelques lignes se multiplient si vous le faites en console, d'où l'utilité du Batch, c'est tout simplement un programme (que nous pourrions d'ailleurs écrire avec une succession de fonctions
system();).
Première ligne du fichier
Code : Console
Cette ligne indique que les commandes ne seront pas affichées à l'écran, l'arobase avant "
echo off" indique que "
echo off" ne doit pas apparaître à l'écran ; sans cette ligne, toutes les commandes devraient être précédées d'un arobase.
Seconde ligne du fichier
Code : Console | cd /d "C:\Documents and Settings\Asibasth\Bureau\Tuto\Essai_1" |
Cette ligne indique dans quel répertoire Windows et Make vont devoir travailler, c'est le chemin où sont situés votre fichier Makefile et votre code ; si des espaces sont présents dans ce chemin, vous devez entourer le chemin de guillemets doubles.
Troisième ligne du fichier
Code : Console
Cette ligne indique à Windows de supprimer le programme précédemment généré ; sans cette ligne, le programme ne compilerait pas si seul un fichier
.h était modifié. (Make ne détecte que les changements dans les fichiers
.cpp.)
Le paramètre "
/F" signifie "Force" : ça évite que Windows vous demande une confirmation avant de supprimer le fichier.
Dernières lignes du fichier
Code : Console
La première des deux lignes lance Make qui lui-même lancera la compilation ; la deuxième indique à Windows de ne pas fermer la fenêtre de console : ainsi, si des erreurs surviennent pendant la compilation, vous aurez le temps de les lire.
Fichier complet
Code : Console | @echo off
cd /d "C:\Documents and Settings\Asibasth\Bureau\Tuto\Essai_1"
del Hello.exe /F
make
PAUSE |
Placez donc ce code dans un fichier nommé "
Build.bat" et faites un double-clic dessus. Des fichiers
.o devraient apparaître ainsi que le tant désiré "
Hello.exe". Ouf, c'est fait.
Configurer
MinGW pour utiliser la
SDL est à mon goût plus simple que de configurer un
IDE. Il suffit d'ajouter quelques fichiers et une ligne dans le
Makefile.
Dans ce cas-là, commençons.
Téléchargement
Tout d'abord, vous devez télécharger la dernière version de la
SDL sur son site officiel,
libSDL.org. Dans la page de téléchargement, section "
Development Libraries", sous-section "
Win32", choisissez le fichier qui précède la mention "
Mingw32" entre parenthèses.
Mise en place
Dézippez l'archive que vous venez de télécharger, placez les fichiers contenus dans le dossier
include/SDL dans le dossier "
C:\MinGW\include\SDL", faites de même pour les fichiers contenus dans
/lib, mais dans le répertoire "
C:\MinGW\lib" cette fois. Prenez ensuite le fichier
bin/SDL.dll et mettez le au chaud dans le dossier "
C:\MinGW\bin", vous devrez aussi placer ce fichier DLL à côté de tout programme utilisant la SDL.
Configuration
Ouvrez votre fichier Makefile et changez la ligne de la variable
LDFLAGS comme suit :
Code : Autre1
| LDFLAGS=-lmingw32 -lSDLmain -lSDL -mwindows |
Lors de la phase de "Linkage" du programme, le Linker va associer vos fichiers objets avec les fichiers que vous avez placé dans le dossier
lib, sans ça votre programme tentera d'accéder à des fonctions inexistantes, le Linker s'en rendra compte et vous pouvez dire adieu à votre programme.
N'oubliez pas d'inclure les fichiers d'entête de la SDL au début de votre programme :
Code : C++
Démarrage
Vous pouvez maintenant lancer votre fichier
Build.bat et ensuite votre programme comme si de rien était. (Notez que je ne vous ai pas fourni le code source pour utiliser la SDL cette fois-ci, un certain M@teo21 a écrit un excellent tutoriel à ce sujet...)
Ce tutoriel à été réalisé post-formatage : autrement dit, j'ai réellement installé
MinGW pour faire ce tutoriel et ce, afin d'éviter tout (non-)problème qui pourrait venir de l'installation ultérieure d'un logiciel ; ce tutoriel a été à la base écrit pour Windows XP.
Si vous avez réussi à compiler votre programme, bonne continuation !
Si vous avez eu des erreurs, n'hésitez pas à me laisser un message privé ou un commentaire sur le tutoriel, je tenterai de l'améliorer en conséquence.
En tout cas, merci de m'avoir lu, en espérant que ce tuto vous a été utile.