Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » [Tutoriel]Compiler sous Windows avec GCC
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

[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


Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

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).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Milang Hors ligne Membre Points: 488 Défis: 2 Message

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 ?
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 10/04/2019 21:11 | #


Désolé, je n'ai pas compris ta question. >_o
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Milang Hors ligne Membre Points: 488 Défis: 2 Message

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
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kamrade Hors ligne Membre Points: 48 Défis: 0 Message

Citer : Posté le 07/01/2021 12:29 | #


Bonjour, je voudrai savoir si ce tutoriel est valable avec la graph 35+e2?
Kbd2 Hors ligne Membre Points: 269 Défis: 0 Message

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.
Kamrade Hors ligne Membre Points: 48 Défis: 0 Message

Citer : Posté le 07/01/2021 15:03 | #


Ok, thank you very much!

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 89 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd