[Tutoriel]Compiler sous Windows avec GCC
Posté le 03/04/2015 15:18
J'ai décidé de reprendre le tutoriel de Lephenixnoir disponible ici pour compiler des addins sous windows. Malgré que l'on peut utiliser les binaires du PrizmSDK le faire, il est néanmoins plus intéressant de prendre des binaires à jour .
Je tiens à dire que c'est grâce à cette manière que l'on obtient que le compilateur du WinSDK
1.Installer MinGW et les outils adéquats.
I. Installer MinGW et les outils adéquats
Pour commencer, Il est nécessaire d'installer MinGW, un portage sous Windows du célèbrissime GCC. Téléchargez l'installateur
ici. Installez le à la racine du disque( par exemple, C:/). L'installateur va installer MinGW et MSys, les 2 programmes que nous allons utiliser tout au long du tuto
Ensuite, il vous faut installer
Libpng, gmp, mpfr et mpc.
J'ai déjà compiler les dernières versions des librairies disponible
ici.
Pour les installer, il vous suffit de copier le contenu des archives dans le dossier d'installation du MinGW( qui doit normalement être "C:/MinGW" )
II. Récupérer les sources
Pour compiler GCC, il faut......tadaaam... les sources de GCC. De plus, il va falloir les sources de Binutils. Lephenixnoir vous donne le lien vers un tableau de compatibilité entre les versions de GCC et celles de Binutils. Ce tableau est
ici.
-Sources de GCC
-Sources de Binutils
Pour ma part, j'ai utilisé GCC 4.9.2 et Binutils 2.25
III. Pré-compilation
Passons, à la préparation, on va d'abord créer un répertoire "src" à la racine.
Dedans, vous allez créer 2 dossier build-gcc et build-binutils.
On va aussi créer un dossier "cross" qui sera le dossier où se trouvera le compilateur fraîchement compilé
Puis vous allez décompresser les archives des sources dans le dossier "src"(enlevez les numéros de versions
) afin d'avoir une arborescence telle que:
C:/
+ src
- build-binutils
- build-gcc
- binutils
- cross
- gcc
Il ne faut pas utiliser le dossier root de votre disque(C:/ ou autre) car ça provoque des erreurs avec libtool!
IV. Compiler Binutils
Pour compiler gcc et binutils, nous allons maintenant passer sous
GNU/Linux (Julese50, tu est content ?
). Nous vous inquiétez pas, nous allons pas quitter windows, mais on va utiliser MSys. C'est un shell qui se comporte un peu comme Linux.
Pour le lancer, allez dans le dossier où est installé minGW, puis allez dans msys -> 1.0 et lancez msys.bat.
Une fenêtre s'ouvre, ressemblant à une console Linux.
Screenshot.
Pour naviguer avec cette console, utilisons la commande cd et allons dans le dossier "build-binutils"
$ cd c:/src/build-binutils
puis, on configure la compilation de Binutils
$ ../binutils/./configure --target=sh3eb-elf --prefix=c:/src/cross --disable-nls
Si la configuration affiche une erreur, MP moi pour que je vous aide
Puis on compile
$ make
$ make install
V.Compiler GCC
Maintenant, qu'on a Binutils, on va compiler gcc. Pour commencer, il faut ajouter le dossier bin au PATH:
export PATH=/c/src/cross/bin:$PATH
C'est pour que GCC puisse utiliser binutils pour la compilation de la libgcc.
allez dans build-gcc et configurer la compilation:
$ cd c:/src/build-gcc
$ ../gcc/./configure --target=sh3eb-elf --prefix=c:/src/cross --disable-nls --enable-languages=c,c++ --without-headers
et enfin compilons:
$ make all-gcc
$ make install-gcc
On va, par la même occasion compiler libgcc. Pour cela, il faut faire:
$ make all-target-libgcc
$ make install-target-libgcc
VI. Le G1A-Wrapper
Maintenant que nous pouvons compiler nos sources en binaire, il faut avoir un programme permettant d'ajouter un entête au programme pour qu'il puisse être lu par les Casios.
Le G1A-Wrapper est une application créé par
Kristaba qui va créer vos g1a à partir des fichiers binaires générés par gcc.
Téléchargement(cliquez sur "download zip)"
Dézippez le dossier des sources dans votre racine.
Je vous conseille de le renommer en "wrapper", ce sera plus simple par la suite.
Puis compilons le programme:
$ cd C:/wrapper
$ make all
$ make install
Vous aurez alors un programme g1a-wrapper.exe dans le dossier. Je vous conseille alors de le copier dans le même dossier que les compilateurs.
VII. La libfxcg
Pour compiler des programmes, il est nécessaire d'avoir une librairie. La libfxcg est la librairie conçu pour compiler des addins pour prizm.
D'abord, téléchargeons la libfxcg
lien.
Avant de la compiler, il faut ajouter les compilateurs au PATH.
Il faut aller dans Démarrer > Ordinateur > Propriétés systèmes (dans la barre en haut) > Paramètres Systèmes Avancés > Variables d'environnement...
Puis, dans la liste Variables utilisateur, double-cliquez sur PATH ( ou créer la si elle n'existe pas) et ajoutez à la fin:
;chemin du dossier des compilateurs
dans mon cas, j'ajouterais:
;C:/src/cross/bin
Puis, on ouvre avec un éditeur de texte les fichiers
Makefile situé dans le dossier "libc" et "libfxcg" et on modifie la ligne:
TOOLCHAIN_PREFIX=prizm-
par :
TOOLCHAIN_PREFIX=sh3eb-elf-
et on compile:
$ cd c:/src/libfxcg
$ make
Puis copiez les dossiers "include" et "lib" du dossier libfxcg dans le dossier du compilateur.
VIII. Mkg3a
Le g1awrapper est le programme qui crée les addins pour les caltos monochromes. Cependant, il faut un deuxième programme pour les addins pour prizm . Il s'agit du mkg3a , dévellopé par Tari (et nan, c'est pas la fils de A Tari
)
Téléchargement du Mkg3a
à suivre
Fichier joint
Citer : Posté le 10/04/2019 20:51 | #
Ah en effet, tu n'auras pas de chemin correct pour le compilateur. Il te suffit de le compiler comme d'habitude, mais au lieu de taper make install tu copies les fichiers qu'il te faut dans ton projet (il y a libgint-fx.a, fx9860g.ld et tout le dossier include/gint). Ensuite tu utilises les flags qu'il faut pour les utiliser (à savoir -L et -l pour la lib, -T pour le linker script et -I pour les en-têtes).
Citer : Posté le 10/04/2019 21:10 | #
mais il n'y a pas moyen de faire un truc définitif, en écrasant la lib présente ?
Citer : Posté le 10/04/2019 21:11 | #
Désolé, je n'ai pas compris ta question. >_o
Citer : Posté le 10/04/2019 21:20 | #
En fait dans le prizmsdk il y a le dossier bin avec gcc, un dossier sh3eb-elf, et libexec.
Mais il y a déjà des dossiers include et lib.
Alors je me disais si on pouvait juste changer les fichiers pour la prizm et remplacer ça par les modules de gint. comme ça on aurait juste à reprendre le makefile existant et seulement le réadapter
Citer : Posté le 10/04/2019 21:24 | #
Alors c'est sans doute possible mais... un peu casse-pieds, le Makefile n'a pas grand-chose à voir. Il y a aussi le fxSDK à installer. Autant le refaire du début pour être honnête, ça irait plus vite.
Citer : Posté le 07/01/2021 12:29 | #
Bonjour, je voudrai savoir si ce tutoriel est valable avec la graph 35+e2?
Citer : Posté le 07/01/2021 13:31 | #
It is a very old tutorial, I would recommend using WSL and following this (without the g1a-wrapper) then installing fxSDK.
Side note: It's possible there are some fxSDK/gint binaries for Windows floating around somewhere, but I don't think they would be very up-to-date.
Citer : Posté le 07/01/2021 15:03 | #
Ok, thank you very much!