Aller au menu - Aller au contenu

[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)
Avatar
Auteur : Asibasth
Note : 18 / 20 (6 votes)
Visualisations : 7 920

Plus d'informations Plus d'informations
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. ;)
Sommaire du tutoriel :
Icône du chapitre

Pourquoi ne pas utiliser un IDE ?

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.

Le cas MinGW

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.

Installer MinGW

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 :

Image utilisateur


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 :

Image utilisateur


Validez, le programme commencera alors à télécharger et installer les outils. Le poids total des outils choisis approche les 17 Mo.

Image utilisateur


Si à un moment vous obtenez cette erreur :

Image utilisateur


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 :

Image utilisateur


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.

Compiler en C++ avec Make

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 :D ) je vais vous en donner un tout prêt.

Le voici :

Code : Autre
1
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 :
  1. passer par la console Windows, c'est long et fastidieux
  2. 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
@echo off


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
del Hello.exe /F


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
make
PAUSE


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.

Utiliser la SDL

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 : Autre
1
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++
1
#include <SDL/SDL.h>


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.
Retour en haut Retour en haut


Créé : le 31/07/2007 à 10:03:20
Modifié : le 22/08/2008 à 16:06:33
Avancement : 95%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 289 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0519s (0.038s)