Messages recommandés



titre.png



av-38565.jpg


Voici un petit tutoriel pour ceux qui souhaitent créer des homebrews pour l'OS natif de la Dingoo (que j'appellerais DingoOS). Il est basé sur des tutoriels du forum Dingoonity (site ici).

=Pré-requis :=
* Cygwin : grossièrement, il s'agit d'un "émulateur" Linux tournant sous Windows, cela permet de se retrouver avec un environnement Linux sous Windows. Celui-ci inclut le compilateur MIPSEL nécessaire à la compilation sur DingoOS, plus les librairies utiles à la programmation.

* Dingoo SDK : Regroupe le dossier nécessaire à la compilation (dont le fameux Makefile), ainsi qu'un squelette d'application.

Parce que j'en avais marre de tout le temps chercher le SDK sur différents forum ou des serveurs FTP chinois (avec une bande passante rappelant le bon vieux temps du 56k...), j'ai préparé un petit pack prêt à l'emploi que vous trouverez à cette adresse.

= Mise en place : =

* Décompressez l'archive à la racine du lecteur C:\. Vous devriez donc avoir maintenant deux dossiers nommés cygwin et dingoo_sdk.

* Entrez dans le dossier cygwin et cliquez sur le fichier cygwin.reg, ajoutez les infos au registre Windows. Ceci va permettre de déclarer au système les chemins nécessaires à Windows pour lancer la compilation sans erreur.

Voilà, votre SDK est en place ! On peut maintenant passer à un test de compilation.

=Test de compilation :=

Entrez dans le dossier c:\dingoo_sdk et lancez le fichier shell.bat. Ce fichier met en place l'environnement adéquat pour compiler, et ouvre une fenêtre de commande. Tapez build et appuyez sur entrée. Une série de code devrait apparaître, et se finir lorsque l'invite vous demande d'appuyer sur une touche pour continuer. Vous remarquerez alors qu'un fichier boot.app est apparu dans le dossier c:\dingoo_sdk. Il ne s'agit ni plus ni moins que de votre première application pour Dingoo Transférez-là sur votre console pour essayer !

Si vous voulez nettoyer le bazar laissé par le compilateur, entrez dans l'invite de tout à l'heure la commande clean et appuyez sur entrée.

=Analyse du programme :=

Voici une analyse succinte du fichier main.c qui explique le fonctionnement basique d'un programme :

int x = DISPLAY_WIDTH / 2, y = DISPLAY_HEIGHT / 2;


* DISPLAY_WIDHT et DISPLAY_HEIGHT sont des constantes initialisées dans le fichier lib/include/display.h. Elles correspondent à la longueur et à la largeur en pixels de l'écran de la Dingoo. En fait ici on affecte deux variables x et y qui ont pour valeur la moitié des tailles de l'écran (soit 160 et 120). Ces valeurs définiront ensuite la croix que vous voyez sur le programme.

int i = 0;


* La variable i permet d'afficher le nombre de frames générées depuis le début du programme, nous y reviendrons un peu plus tard.

display_t *display;
bitmap_t *screen;
console_t *console;


* On initialise trois variables dynamiques qui correspondent à l'écran, l'affichage et la console.

ctrl_init();


* Initialise le système d'entrées du pad. Le programme reçoit la valeur keymap de chaque touche située dans le fichier lib/include/pad.h.

display = display_init(DISPLAY_BUFFER_AUTO, NULL);


* Initialise le système d'écran. Pour le premier paramètre, deux constantes sont possibles : DISPLAY_BUFFER_AUTO et DISPLAY_BUFFER_USER (vu dans lib/include/display.h). Le deuxième paramètre reçoit des données qui servent au programme si DISPLAY_BUFFER_USER a été choisi (à creuser, çà devient compliqué d'aller au fond de la chose...).

screen = graphics_init(display);


* Initialise le système d'affichage. On lui passe en paramètre le système d'écran crée précédemment. Pareil, c'est assez compliqué comme système...

console = console_init(screen, CONSOLE_TRANSPARENT);


* Initialise la console. En premier paramètre on envoie le système d'affichage crée précédemment. Le deuxième paramètre est un flag qui peut avoir deux valeurs, CONSOLE_NONE et CONSOLE_TRANSPARENT.

graphics_clear(screen, RGB(0x00, 0x00, 0x00));


* Tout simplement une commande pour effacer l'écran de la console. Le premier paramètre est l'écran sur lequel on doit agir, et le deuxième est une palette de couleur au format RGB. (0x00, 0x00, 0x00) représente la couleur noire (Rouge : 0, Vert : 0, Bleu : 0). Si on avait voulu mettre un affichage blanc, il aurait suffit de changer la valeur de la palette RGB en (0xFF, 0xFF, 0xFF).

    while(1)
    {
        ...
    }


* Voici la boucle du programme. C'est elle qui va tourner sans arrêt et déclencher la plupart des évènements comme le changement de l'affichage, l'interrogation du pad... Pour faire simple, sortez à un moment de cette boucle et le programme s'arrête. Voyons un peu en détail ce que fait cette boucle...

graphics_clear(screen, RGB(0x00, 0x00, 0x00));


* On efface tout d'abord l'écran. Bah oui, si on efface pas l'écran à chaque fois, on va écraser l'affichage précédent...

ctrl_poll();


* Fonction très utile ! C'est elle qui va interroger le pad pour savoir quelle touche est actuellement pressée. Il semblerait que ce SDK ait implémenté un système permettant de gérer l'appui simultané sur plusieurs touches.

if(ctrl_pressed(CTRL_BUTTON_START))
            break;


* Tout simple, cette ligne précise que si la touche START est pressée, on sort de la boucle, et donc on entraîne la fin du programme.

if(ctrl_pressed(CTRL_DPAD_UP))
            if(y > 0)
                y--;
        
        if(ctrl_pressed(CTRL_DPAD_DOWN))
            if(y < DISPLAY_HEIGHT)
                y++;
        
        if(ctrl_pressed(CTRL_DPAD_LEFT))
            if(x > 0)
                x--;
        
        if(ctrl_pressed(CTRL_DPAD_RIGHT))
            if(x < DISPLAY_WIDTH)
                x++;


* En fonction de la touche appuyée, on change les valeurs des variables x et y, ceci ayant pour but de diriger la petite croix que l'on voit sur l'écran (j'appellerais ça un embryon de souris ).

graphics_line(screen, x - 5, y, x + 5, y, RGB(0x00, 0xaa, 0xee));
graphics_line(screen, x, y - 5, x, y + 5, RGB(0x00, 0xaa, 0xee));


* On trace deux lignes sur l'écran screen, aux coordonnées x et y, et on leur donne la couleur RGB que l'on veut.

i++;


* On ajoute 1 à notre variable i, ce qui veut dire qu'une frame de plus est ajoutée au compteur (utile si l'on veut afficher les FPS, ou gérer des timers par exemple).

console->x = CONSOLE_COORD(0);
console->y = CONSOLE_COORD(0);


* On replace les pointeurs de la console (x=longueur, y=largeur) à 0, c'est à dire en haut à gauche.

console_printf(console, "i = %d\npath = %s\n", i, *argv);


* On demande à la console d'afficher du texte. Ici on peut remarquer qu'on lui demande d'afficher le nombre de frames générées depuis le lancement du programme (la variable i de tout à l'heure), et également le chemin de l'application dans le système de la console.

display_flip(display);


* Enfin, on bascule l'affichage qu'on a crée et qui était dans le buffer sur l'écran de la console. Il faut savoir que tout se qui à trait à l'affichage est écrit dans un buffer et envoyé à l'écran à la fin de la boucle, à des fin de performances.

ctrl_end();
    
console_end(console);
display_end(display);
graphics_end(screen);


* Une fois sortis de la boucle (par l'intermédiaire de la touche start), on peut libérer les ressource (clavier, affichage...).

return 0;


* On retourne un code. Ceux qui connaissent un peu les programmes en ligne de commande comprendront l'utilité de retourner un code, par exemple en cas d'erreur.

=Et maintenant :=

Maintenant, il ne vous reste plus qu'à créer votre propre code. Petit conseil, placez vos sources dans le dossier src (virez le main existant), mais ne supprimez pas ce qui est contenu dans le dossier lib. Il s'agit d'un mini SDK qui peut être très utile puis qu'il contient des fonctions pré-écrites pour simplifier le développement (gestion du son, de la vidéo, des touches, et autres joyeusetés...). Vous n'avez plus qu'à nous coder un petit truc sympa, ou porter un code existant pour DingoOS !

=Remerciements :=

yoannd26
booboo
Les p'tits gars du forum Dingoonity
L'ensemble des hackers et bidouilleurs qui s'arrachent les cheveux pour nous proposer des homebrews de qualité.

----

Tutoriel réalisé par prudho

Retranscrit sur le wiki par oliveroidubocal pour Gx-mod.com

Vous pouvez poster vos commentaires sur le forum en suivant ce lien : Lien forum Modifié par JKilvan

Partager ce message


Lien vers message
Partager sur d'autres sites

Je DL ça de suite...

Un grand merci pour tous ces renseignements très pratiques et précis.

Modifié par wirl

Partager ce message


Lien vers message
Partager sur d'autres sites

Un grand merci pour ce tuto bien utile :ok:

Partager ce message


Lien vers message
Partager sur d'autres sites

Il semblerait qu'il puisse y avoir quelques petits soucis lors de la compilation sous Windows XP... Ayant réalisé ce tuto sous Vista, je n'ai rien rencontré du tout, je teste ça et je publie un correcif si besoin est.

En passant, la petite lib fournie avec le SDK m'a l'air bien sympa pour démarrer la prog sous DingoOS, il serait sympa de la commenter et de l'améliorer... Si quelqu'un est intéressé :D

Edit : testé sous XP sans aucun soucis (mon collègue a du abuser de la moquette). Merci de me rapporter les éventuelles erreurs que vous rencontrerez :rolleyes:

Modifié par prudho

Partager ce message


Lien vers message
Partager sur d'autres sites

YoP,

Merci pour ce tuto c cool. Par contre est ce que tu pourrais détailler un peu plus les fonctions du SDK et comment les utiliser ?

Partager ce message


Lien vers message
Partager sur d'autres sites

Le SDK n'est pas de moi hein :unsure: Et je n'ai pas encore eu le temps de bien le regarder. Ceci dit, je vais m'y mettre. En attendant si tu veux comprendre comment il fonctionne, commence par regarder le fichier src/main.c, il initialise pas à pas la mise en route du programme.

Partager ce message


Lien vers message
Partager sur d'autres sites

Bonjour,

J'ai ajouté dans le tutoriel une "petite" analyse du fichier main.c fourni dans le SDK, qui tente d'expliquer ligne par ligne le fonctionnement du programme de départ. Le but étant de vous donner les billes nécessaires à l'écriture de votre premier programme pour DingoOS.

Partager ce message


Lien vers message
Partager sur d'autres sites

Salut et merci pour ce tuto qui me semble rendre les choses beaucoup plus simples.

Le boot.app (de 1ko) crée en "3. Test de compilation :" ne donne rien chez moi. (Je l'ai inséré en Game\3D.)

Partager ce message


Lien vers message
Partager sur d'autres sites

Salut,

Le boot.app fait 13ko s'il est généré correctement. Il doit donc y avoir une erreur lors de la compilation. Regarde dans l'invite de commande s'il n'y a pas une ligne d'erreur qui apparait à un moment donné. Sinon, tu as utilisé le main existant ou crée un autre main.c ?

EDIT : si tu veux avoir un log des erreurs de compilation, ouvres le fichier dingoo_sdk\compile\build.bat et change la ligne make en make >> log.txt, ainsi la sortie du compilateur sera redirigée vers le fichier log.txt du dossier compile.

Modifié par prudho

Partager ce message


Lien vers message
Partager sur d'autres sites

Salut,

main.c existant.

Mon log en pièce jointe.

Modifié par zouzzz

Partager ce message


Lien vers message
Partager sur d'autres sites

Mmmm. Etrange... en fait il semblerait que le compilateur n'aille pas plus loin que la première commande...

Voici mon log, la compilation a lieu jusqu'au bout :

mipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o console.o ../lib/console.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o crt0.o ../lib/crt0.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o display.o ../lib/display.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o font.o ../lib/font.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o graphics.o ../lib/graphics.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o library.o ../lib/library.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o pad.o ../lib/pad.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o string.o ../lib/string.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o tga.o ../lib/tga.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o time.o ../lib/time.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o timer.o ../lib/timer.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -o main.o ../src/main.cmipsel-linux-gcc -g -c -O3 -I../lib/include -I"c:/cygwin/mipseltools/include"/mipsel-linux/include -I -mips32 -Wall -finline-functions -fomit-frame-pointer -msoft-float -fno-builtin -fno-exceptions -mno-abicalls -fno-pic -pipe -G 0 -D_DEBUG -DMPU_JZ4740 -D_ASSEMBLER_ -o stub.o ../lib/stub.smipsel-linux-ld console.o crt0.o display.o font.o graphics.o library.o pad.o string.o tga.o time.o timer.o main.o  stub.o -lm -lgcc -Bstatic -g -T link.xn -o downenv.elf -Map downenv.map -Ttext 0x80a00000 -L../lib -L"c:/cygwin/mipseltools/lib" -lm -lstdc++ -lc -lgccmipsel-linux-objcopy -O binary -R .export_table -R .export_string -R \	.import_table -R .import_string -R .section_info downenv.elf downenv.binmipsel-linux-objcopy -O binary -j .export_table downenv.elf export.tabmipsel-linux-objcopy -O binary -j .export_string downenv.elf export.strmipsel-linux-objcopy -O binary -j .import_table downenv.elf import.tabmipsel-linux-objcopy -O binary -j .import_string downenv.elf import.strmipsel-linux-objcopy -O binary -j .section_info downenv.elf section.dsc

Quel OS utilises-tu ? Si c'est Vista, assures-toi de lancer le shell en administrateur. Parce que ce qui me chagrine, c'est qu'aucune erreur n'est affiché, c'est comme si le compilateur s'arrêtait comme ca...

Partager ce message


Lien vers message
Partager sur d'autres sites

Idem, je suis en train de faire des tests là (au taf, mais bon...). As tu bien suivi le tuto à la lettre ? Je suppose que oui, mais on est jamais assez prudent ^^

N'as tu pas oublié d'enregistrer le fichier cygwin.reg ? Au pire, essaies dans le shell de lancer la commande clean, histoire de nettoyer le bouzin. Et de recompiler, on ne sais jamais. Sinon, il faut peut être que le compte soit administrateur...

Partager ce message


Lien vers message
Partager sur d'autres sites

Merci.

Idem, je suis en train de faire des tests là (au taf, mais bon...). As tu bien suivi le tuto à la lettre ? Je suppose que oui, mais on est jamais assez prudent ^^
J'ai recommencé 2 fois, je ne pense pas avoir oublié quelque chose.
N'as tu pas oublié d'enregistrer le fichier cygwin.reg ?
Oui, ça je l'ai fait.
Au pire, essaies dans le shell de lancer la commande clean, histoire de nettoyer le bouzin. Et de recompiler, on ne sais jamais. Sinon, il faut peut être que le compte soit administrateur...

Je l'avais fait aussi.

Je cherche de mon coté aussi.

Partager ce message


Lien vers message
Partager sur d'autres sites

Je dois t'avouer que je suis un peu blazé ^^ J'ai re-téléchargé le pack sur une autre machine, refais les étapes et réussi à compiler sans aucun soucis. Je ne comprends pas ! L'idéal serait que quelqu'un d'extérieur teste çà.

Partager ce message


Lien vers message
Partager sur d'autres sites

Alors j'ai :

- téléchargé ton pack (186 Mo)

- décompressé les 2 dossiers que contenait ton pack en C

- double cliqué cygwin.reg : OK

- tapé build en fenêtre dos de shell.bat

Pareil, fichier .app de 1ko.

Partager ce message


Lien vers message
Partager sur d'autres sites

Ok, il semblerait que j'ai réussi à reproduire le problème !

Quand je compile, j'obtiens une erreur du genre : make : command not found bin/sh, et dans le log j'ai la même ligne que toi... Celà pourrait provenir du fait que les variables d'environnement ne soient pas ajoutées.

Pour vérifier : vas dans le shell et tapes SET, là devraient apparaitre des tas de variables. Regarde les lignes PATH (qui doit contenir C:\cygwin\bin;C:\cygwin\mipseltools\bin), ainsi que deux lignes appelées MIPSLIB et MIPSTOOLS.

Si elles n'y sont pas, c'est que l'importation de ces variables en lançant shell.bat ne se fait pas correctement.

Autre chose, il se pourrait qu'il faille redémarrer l'ordi pour que les valeurs ajoutées au registre Windows soient prises en compte. A essayer.

Partager ce message


Lien vers message
Partager sur d'autres sites
Pour vérifier : vas dans le shell et tapes SET, là devraient apparaitre des tas de variables. Regarde les lignes PATH (qui doit contenir C:\cygwin\bin;C:\cygwin\mipseltools\bin), ainsi que deux lignes appelées MIPSLIB et MIPSTOOLS.

Si elles n'y sont pas, c'est que l'importation de ces variables en lançant shell.bat ne se fait pas correctement.

Tout y est. :/

commandeu.jpg

Autre chose, il se pourrait qu'il faille redémarrer l'ordi pour que les valeurs ajoutées au registre Windows soient prises en compte. A essayer.

Ca a été fait.

Modifié par zouzzz

Partager ce message


Lien vers message
Partager sur d'autres sites

Je viens d'essayer avec un pc Vista Home, ça fonctionne sans souci.

J'ai pourtant fait un copié-collé de mes fichiers que j'avais sur mon PC XP home sur mon PC Vista home.

Ça va être moins simple pour moi de coder sur Vista mais bon je mettrai plus longtemps c'est tout.

Il n'existe pas d'émulateur DingooOS pour le moment, c'est dommage ça aurait été bien pratique aussi.

Merci pour tout prudho. :ok:

Modifié par zouzzz

Partager ce message


Lien vers message
Partager sur d'autres sites

Bon zouzzz, je m'avoue vaincu sur ce coup là. Il faudrait avoir plus de retour pour savoir ce qu'il en est réellement... :encolere12:

Sinon, j'ai mis à jour le tuto pour ce code :

console->x = CONSOLE_COORD(0);console->y = CONSOLE_COORD(0);

En l'enlevant pour un test, je me suis rendu compte que mon affichage dansait la rumba :D Par déduction, on peut deviner que ce code n'est ni plus ni moins que l'endroit ou doit commencer le buffer, et si on ne le réinitialise pas à chaque frame, il s'auto-incrémente jusqu'à arriver au max de sa valeur (et donc, plantage).

Et cadeau, pour les fainéants, voilà un petit hello world commenté et tout !

#include <types.h>#include <console.h>#include <display.h>#include <event.h>#include <graphics.h>#include <pad.h>int main(int argc, char **argv){	// On crée une variable pour l'affichage	display_t *display;		// On crée une variable pour l'écran	bitmap_t *screen;		// On crée une variable pour la console	console_t *console;		// On initialise le système de contrôles (PAD)	ctrl_init();		// On initialise le système d'affichage en spécifiant un BUFFER de taille automatique (et donc on passe NULL en second paramètre)	display = display_init(DISPLAY_BUFFER_AUTO, NULL);		// On initialise le système d'écran, dans lequel on fait passer le système d'affichage crée juste avant	screen = graphics_init(display);		// On initialise la console en elle même, en lui faisant passer le système d'écran	console = console_init(screen, CONSOLE_TRANSPARENT);		// On efface l'écran en lui mettant une jolie couleur noire	graphics_clear(screen, RGB(0x00, 0x00, 0x00));		// Boucle principale, si on en sort, c'est que le programme se termine	while(1)	{		// TOCOMMENT !!!		if(GET_EVENT_NULL() < 0)			break;				// On efface l'écran, couleur noire...		graphics_clear(screen, RGB(0x00, 0x00, 0x00));				// On interroge le système de contrôle pour référencer les touches pressées		ctrl_poll();				// Si on appuie sur start, on ferme le programme		if(ctrl_pressed(CTRL_BUTTON_START))			break;				// On remet le pointeur d'affichage à 0 (longueur et hauteur)		console->x = CONSOLE_COORD(0);		console->y = CONSOLE_COORD(0);		// On affiche le message (en réalité dans le buffer, mais bon)		console_printf(console, "Hello, world !");				// On bascule ce que contenait le buffer vers l'écran		display_flip(display);	}		// On ferme le système de gestion du PAD	ctrl_end();		// On ferme nos trois systèmes bas level (reste à savoir si les variables sont détruites...)	console_end(console);	display_end(display);	graphics_end(screen);		// On retourne un code	return 0;}

Enjouaillez !

Si vous lisez ceci, ca veut dire que vous avez lu ce post jusqu'au bout, félicitations !

Partager ce message


Lien vers message
Partager sur d'autres sites

Même problème que Zouzzz :(

Je suis sous Seven, mes variables d'environnement ont été déclarées "a la main" dans windows, et elles sont bien présentes.

le cygwin.reg est bien passé aussi, l'ordi a été reboot pour prendre en compte les modifications...

Et toujours ce foutu "make: /bin/sh: Command not found" :'(

J'ai plus d'idées :(

Partager ce message


Lien vers message
Partager sur d'autres sites

Pareil que Zouzzz et toi s3rg3 sous vista Premium.

Même ligne d'erreur,

make: /bin/sh: Command not found

suivi de :

make : *** [console.o] Error 127

Tapé set dans le Shell, c'est ok tout y est, et bien sur le PC a été rebooté.

SDK ne fonctionne que sur mon PC portable, c'est mieux que rien..

Modifié par wirl

Partager ce message


Lien vers message
Partager sur d'autres sites
Ok, il semblerait que j'ai réussi à reproduire le problème !

Quand je compile, j'obtiens une erreur du genre : make : command not found bin/sh, et dans le log j'ai la même ligne que toi... Celà pourrait provenir du fait que les variables d'environnement ne soient pas ajoutées.

Pour vérifier : vas dans le shell et tapes SET, là devraient apparaitre des tas de variables. Regarde les lignes PATH (qui doit contenir C:\cygwin\bin;C:\cygwin\mipseltools\bin), ainsi que deux lignes appelées MIPSLIB et MIPSTOOLS.

J'ai vu que tu demandais à Zouzzz de vérifier les lignes C:\cygwin\bin et C:\cygwin\mipseltools\bin etc.

Je vais dire certainement un truc con (pas grave je suis jamais mort), mais moi j'ai C:/cygwin/bin et C:/cygwin/mipseltools/bin.

Le sens des / et \ serait'il en cause ?

Tout ce que renvoie la commande SET reporte des chemins avec \, seules ces deux lignes ont des chemins /.

Partager ce message


Lien vers message
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant