Merci emmanuel un site que je n'avais pas encore trouvé.
Merci emmanuel un site que je n'avais pas encore trouvé.
Bon, j'ai parcouru tes cours (même un peu plus) j'ai lu le cours introduction au c et pour finir j'ai essayé ton exemple hello.c, hello.h et main.c qui ne marche pas. Il doit donc s'agir uniquement du compilateur j'ai fais des demandes à droite et à gauche.
En tout cas merci à tous pour votre aide et si ça ne marche pas je réécrirais tout en assembleur.
Qu'est-ce qui ne marche pas ?Envoyé par vincevg
Pourrais-tu fournir la methode que tu as utilise pour compiler et les messages d'erreur obtenus ?
Oui bien sur. Je prend l'exemple du hello de emmanuel.
J'ai fait un .bat comme celà :
%1 est le nom de fichier et %2 le nom du pic (j'utilise tjs HTPIC) et %3 le répertoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 echo off PICL -C -E%1.err %1.c -O%1.obj -Zg9 -O -ASMLIST -Q -I%3 -%2 PICL -E+%1.err %1.obj -M%1.map -O%1.cof -O%1.hex -Q -I%3 -%2 type %1.err echo Compilation terminée
Voila l'erreur :
: : undefined symbol: (error)
: : _hello (main.obj) (error)
Pour mémo les fichiers d'Emmanuel sont les suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /* main.c */ #include "hello.h" int main (void) { hello (); return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #ifndef H_HELLO #define H_HELLO /* hello.h */ void hello (void); #endif /* guard */
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 /* hello.c */ #include "hello.h" #include <stdio.h> void hello (void) { puts ("Hello world!"); }
Ton batch est fait pour 1 fichier source. Ici, il y en a 2.Envoyé par vincevg
Il faut qu'il fasse l'équivallent de
soit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 compile ... main.c main.obj compile ... hello.c hello.obj link ... main.obj hello.obj appli.hex
Pour ça, on utilise plutôt un Makefile qu'un batch...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 PICL -C -Emain.err main.c -Omain.obj -Zg9 -O -ASMLIST -Q -I%3 -%2 PICL -C -Ehello.err hello.c -Ohello.obj -Zg9 -O -ASMLIST -Q -I%3 -%2 PICL -Eappli.err main.obj hello.obj -Mappli.map -Oappli.cof -Oappli.hex -Q -I%3 -%2
http://emmanuel-delahaye.developpez.....htm#organiser
Pas de Wi-Fi à la maison : CPL
J'aurais bien aimé que htpicc marche avec un makefile. Mais j'ai fait quelques essais sans succés et pas un mot dans la doc du compilateur (ou plutôt si 1). Bon je continus à tester.
Un makefile fait fonctionner n'importe quoi qui s'appelle à la ligne de commande.Envoyé par vincevg
Montre tes essais (bien que ce soit hors-sujet...)
Pas de Wi-Fi à la maison : CPL
Tu peux expliquer. Je ne vois pas comment un logiciel peut interprêter un makefile s'il n'est pas conçu pour ça.Un makefile fait fonctionner n'importe quoi qui s'appelle à la ligne de commande
Je n'ais plus rien. Je nettoye au fur et à mesure.Montre tes essais (bien que ce soit hors-sujet...)
Parce que c'est le contraire. C'est make qui interprète le Makefile, et celui-ci contient des conditions et des bouts de lignes de commandes. Ces lignes peuvent appeler n'importe quoi. Je t'ai déjà passé un lien qui explique comment faire un Makefile.Envoyé par vincevg
Montre le Makefile qui ne fonctionne pas.
Pas de Wi-Fi à la maison : CPL
Pour ne pas perdre de temps :
Je pense que je connait pas mal GCC et les makefiles (Cf mon site ).
J'aurais préféré utiliser GCC pour les pic mais on ne me laisse pas le choix.
C'est le c que je ne connait pas bien ainsi que le compilateur htpic que je découvre.
Je trouve super sympa que vous passiez du temps pour me dépanner .
Je n'avais pas vu ce message avant d'écrire le précédent.
J'avais oublié ce détail. Je ne lançais pas make mais tentais de faire interprèter le makefile par mon compilateur.Parce que c'est le contraire. C'est make qui interprète le Makefile, et celui-ci contient des conditions et des bouts de lignes de commandes. Ces lignes peuvent appeler n'importe quoi.
Comme je te le disais précedemment je n'ai plus rien mais je vais recommencer dans cette voie.Montre le Makefile qui ne fonctionne pas
Merci
Si tu as un problème de Makefile, c'est ni un problème de C ni un problème de compilateur...Envoyé par vincevg
Pas de Wi-Fi à la maison : CPL
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager