Club robotique de Sophia-Antipolis

Accueil > Projets, études > Nos réalisations > Robot Race > Utiliser MinGW pour développer la DLL du contrôleur

Utiliser MinGW pour développer la DLL du contrôleur

samedi 20 mai 2006, par Eric P.

MinGW

MinGW est un fork de Cygwin destiné à faciliter le développement d’applications Windows dans un contexte Unix-like. De même que Cygwin, il s’agit d’un outillage libre et totalement gratuit.

Bien que la création d’une DLL Windows soit possible avec Cygwin standard, c’est quelque peu complexe, et de plus le binaire généré depend de la DLL cygwin. Les développeurs de MinGW ont voulu rendre la vie plus simple sur ces points.

Les 2 packages d’installation à utiliser pour obtenir très vite et sans migraine un environnement permettant de développer votre DLL pilote de course sont les suivants :
 MSYS-1.0.11-2004.04.30-1
 MinGW-3.1.0-1

Désolé de ne pas mettre les fichiers ici, mais l’un des deux était visiblement trop volumineux et a été refusé en upload (au bout de 15 minutes de transfert 🙁)

ATTENTION : Il est proposé par défaut un autre package d’installation, censé simplifier la vie. En fait, je n’ai pas réussi à faire marcher le résultat, car il manque tout simplement la version MinGW de gcc, et que celle de Cygwin semble ne pas convenir. Donc, utilisez plutôt les références que nous vous proposons ici et tout ira bien 😉

La procédure d’installation est assez triviale :
 installer MSYS (l’environnement ligne de commande et les outils à la Unix) en exécutant MSYS-1.0.11-2004.04.30-1.exe
 installer MinGW (la partie compilation) en exécutant MinGW-3.1.0-1.exe

C’est tout. Comme suggéré en fin d’install de MinGW, configurez le fichier fstab. En fait il suffit de renommer le fichier exemple proposé en fstb si vous avez installé l’ensemble comme préconisé, à savoir dans c :/msys et c :/mingw.

Pour plus d’info sur MinGW : http://www.mingw.org/

Création d’une DLL

Le plus simple est de lire la FAQ, et plus particulièrement la section How to create a DLL. Pour compiler et générer une DLL, les seules commandes à utiliser sont :

gcc -c -DBUILD_DLL mydll.c
gcc -shared -o mydll.dll -Wl,--out-implib,libtstdll.a mydll.o

L’include

La directive d’export d’un point d’entrée s’exprimant par un simple EXPORT, sans aucun underscore, nous fournissons ci-après une version mise à jour de l’include vehicle_controler.h. Elle inclut d’ailleurs la remarque faite par Blaise concernant une curiosité de MSVC++ au niveau du positionnement de cette directive dans certaines déclaration de protoype.

Have fun 🙂

Eric

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.