Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
29 Mar 2007, 07:35
Message
#1
|
|
|
Nouveau Membre Groupe : Membres Messages : 9 Inscrit : 29 Mar 2007 Membre no 83 686 |
Bonjour à tous,
J'ai un problème (eh oui, sinon je vous écrirais pas..) Lorsque je créer un nouveau projet avec eclipse (+ SDK), il m'ajoute les INCLUDES, un dossier pour le Débugage (il me semble) et ensuite une erreur se produit: **** make -k all Génération du fichier : ../main.c Appel en cours : Compilateur GCC C gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.c" Génération terminée : ../main.c Génération de cible : essai2 Appel en cours : Editeur de liens C MacOS X gcc -o "essai2" ./main.o ld: Undefined symbols: _main make: *** [essai2] Error 1 make: Target `all' not remade because of errors. Génération terminée pour le projet essai2 ensuite lorsque j'essaie de compiler, il me dit que l'application d'existe pas... Auriez-vous une solution à mon problème? Merci d'avoir pris la peine de lire mon post. |
|
|
|
29 Mar 2007, 09:29
Message
#2
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
qu'est ce qu'il y a comme texte dans main.c ?
|
|
|
|
29 Mar 2007, 10:02
Message
#3
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Et que donne le make hors d'Eclipse?
J-P |
|
|
|
29 Mar 2007, 12:24
Message
#4
|
|
|
Nouveau Membre Groupe : Membres Messages : 9 Inscrit : 29 Mar 2007 Membre no 83 686 |
C'est lorsque je créer le fichier main.c qu'il me fait ca.
1° Je fais mon projet C 2° Je fais un nouveau fichier que je nom main.c 3° Il me fait cette erreur. 4° Après maintes tentatives je vous écris. Jaypee: Et que donne le make hors d'Eclipse? Je comprend pas bien ta question. Qu'aimerais tu que je te fournisse? |
|
|
|
29 Mar 2007, 13:24
Message
#5
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
Tu ne serais pas en build automatic ? j'ai fais comme toi sous windows avec build automatic et ca donne:
CITATION **** Incremental build of configuration Debug for project mainc **** make -k all Building file: ../main.c Invoking: GCC C Compiler gcc -O0 -g3 -Wall -c -fmessage-length=0 -omain.o ../main.c Finished building: ../main.c Building target: mainc.exe Invoking: GCC C Linker gcc -omainc.exe ./main.o /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(libcmain.o):: undefined reference to `_WinMain@16' collect2: ld returned 1 exit status make: *** [mainc.exe] Error 1 make: Target `all' not remade because of errors. Build complete for project mainc Vérifit dans Project > Build automatically ne soit pas coché. De plus tu dois avoir une fonction main(...) dans au moins un de tes fichiers Ce message a été modifié par noop - 29 Mar 2007, 13:25. |
|
|
|
31 Mar 2007, 00:09
Message
#6
|
|
|
Nouveau Membre Groupe : Membres Messages : 9 Inscrit : 29 Mar 2007 Membre no 83 686 |
J'étais bien en buil automatic, merci. J ai désactivé cette option. Merci.
Maintenant le soucis que j'ai c est le makefile... J'ai cru comprendre qu il faut en créer un avant de compiler (sinon, lorsque je fais un RUN, il me dit qu'il me manque le fichier d'application (genre essai2.exe je pense). Désolé de poser toutes ces questions c est que j'ai essayé de regarder les fichiers d'aides "livré" avec mais... Sur l'Help ca marche niquel mais chez moi... Non... :-( Je viens de passer sur MAC avant je compilais avec DevC++ (ca doit pas être le meilleur avec ca, ca marchais assez facilement... snif). Merci pour votre aide |
|
|
|
31 Mar 2007, 07:34
Message
#7
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Tes difficultés ne sont pas liées au Mac, mais seulement au changement de plateforme, tu serais passé à Linux tu aurais les même questions.
Le Makefile, c' est une technologie vieille de 40 ans au moins. Le principe de base est qu'on y décrit le projet en terme de dépendances : - main.o dépend de main.c : main.o est la cible, main.c la dépendance. - si la date de la dépendance est plus récente que celle de la cible, le make va tenter de traiter la cible - le make ne traite que la première cible du makefile, c' est le jeu des dépendances qui va faire traiter les autres. Un makefile bien fait ne va refaire que le strict nécessaire. Voici un squelette minimal: CODE CC=gcc CFLAGS=-c LDFLAGS= .c.o: $(CC) $(CFLAGS) $< all: hello hello: hello.o $(CC) $(LDFLAGS) -o $@ hello.o: hello.c .c.o: c' est une règle pour expliquer une fois pour toute, ce qui faut faire pour traiter un .o dépendant d'un .c En majuscules, les symboles, pour éviter de recopier partout des détails de compil. $< et $@ sont des macros : $< représente la dépendance $@ représente la cible suivie des dépendances (à vérifier) CFLAGS ce sont les options de compilation LDFLAGS les options de link Imaginons que le projet se complique et que tu as un second module goodbye.c CODE CC=gcc CFLAGS=-c LDFLAGS= .c.o: $(CC) $(CFLAGS) $< all: hello hello: hello.o goodbye.o $(CC) $(LDFLAGS) -o $@ hello.o: hello.c goodbye.o: goodbye.c Tu vois que les ajouts sont simples, et le make va faire le travail supplémentaire. J-P Ce message a été modifié par Jaypee - 31 Mar 2007, 07:39. |
|
|
|
2 Apr 2007, 08:39
Message
#8
|
|
|
Nouveau Membre Groupe : Membres Messages : 9 Inscrit : 29 Mar 2007 Membre no 83 686 |
Merci bien pour tes explicaitons concernant le Makefile. (J'avais déjà une ptite idée de se qu il faisait mais, c est bien clair merci).
Le Makefile ne sert pas non plus à créer le fichier *.exe dans lequel l'application tournera? Parce que lors de ma compilation, Eclipse me dit que le fichier d'application est introuvable (il n'existe pas). Est-je mal installé Eclipse? C est très énervant d'avoir un compilateur et de ne pas pouvoir essayé ses sources |
|
|
|
2 Apr 2007, 09:55
Message
#9
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
CITATION(neo927 @ 2 Apr 2007, 09:39) [snapback]2162955[/snapback] Merci bien pour tes explicaitons concernant le Makefile. (J'avais déjà une ptite idée de se qu il faisait mais, c est bien clair merci). Le Makefile ne sert pas non plus à créer le fichier *.exe dans lequel l'application tournera? Parce que lors de ma compilation, Eclipse me dit que le fichier d'application est introuvable (il n'existe pas). Est-je mal installé Eclipse? C est très énervant d'avoir un compilateur et de ne pas pouvoir essayé ses sources Qu'est ce que te dit exactement Eclipse. Peut tu faire un copier coller ? |
|
|
|
2 Apr 2007, 21:11
Message
#10
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Oui, dans l' exemple la cible hello est un executable
CODE CC=gcc CFLAGS=-c LDFLAGS= .c.o: $(CC) $(CFLAGS) $< all: hello hello: hello.o goodbye.o $(CC) $(LDFLAGS) -o $@ $< chmod 755 $@ hello.o: hello.c goodbye.o: goodbye.c J' ai corrigé : $< représente bien la ou les dépendances, et $@ la cible uniquement En ajoutant le chmod on voit meiux que hello est l' executable. C'est CP/M, MS-DOS ou OpenVMS qui avaient l' habitude d' ajouter l' extension .exe partout, quitte à le faire implicitement lorsqu' elle manque, mais sous Unix, Linux... ce n' est pas nécssaire. Avec ces modules et le makefile, dans un terminal il suffit de taper make pour voir le tout s' animer. J-P |
|
|
|
4 Apr 2007, 20:26
Message
#11
|
|
|
Nouveau Membre Groupe : Membres Messages : 9 Inscrit : 29 Mar 2007 Membre no 83 686 |
Bonjour à tous, s est toujours moi...
Je n arrive toujours pas à compiler avec eclipse. J ai essayé le makefile donné par Jaypee et sa ne donne rien de bien mieux. J ai fais des capture d'écran de toute l'opération, je suis sur qu il y a des erreurs, ca serais très gentil de votre part de me les indiqués. Je désespère :-( (DevC++ marchait bien dommage qu il n'existe pas sur MAC). Eclipse me paraît un compilateur très puissant mais pour un Newbie comme moi... il est très puissant avec trop de paramètres... Photo 1: Lancement d'eclipse Photo 2: Nouveau projet standard Photo 3: Je nomme mon projet Photo 4: Le projet est créé Photo 5: Nouveau fichier Photo 6: Je nomme makefile Photo 7: Je rentre les instructions du makefile Photo 8: Nouveau fichier Photo 9: Je nomme hello.c Photo 11:Je rentre les instructions de bases Photo 12:J'essaie de faire un Build all... Photo 13:Résultat Photo 15:J'essaie de faire un Run (ca marchera pas car mon fichier binaire n'est pas créé.... Photo 16:Je crée une nouvelle configuration Photo 17:Il me manque un fichier binaire pour continuer... Merci pour votre aide. (Désolé pour l'espacement des réponses, c est que je ne peux pas avoir accès à internet tous les jours :-() 01 http://img57.imageshack.us/img57/1509/image1lb8.png 02 http://img57.imageshack.us/img57/2383/image2eu2.png 03 http://img57.imageshack.us/img57/8448/image3vr4.png 04 http://img440.imageshack.us/img440/5395/image4ya7.png 05 http://img440.imageshack.us/img440/8311/image5qr1.png 06 http://img440.imageshack.us/img440/5085/image6sf3.png 07 http://img19.imageshack.us/img19/2540/image7yw9.png 08 http://img440.imageshack.us/img440/4841/image8in9.png 09 http://img76.imageshack.us/img76/3141/image9gi8.png 11 http://img440.imageshack.us/img440/9632/image11sl4.png 12 http://img76.imageshack.us/img76/9530/image12pv5.png 13 http://img74.imageshack.us/img74/9036/image13ne2.png 15 http://img76.imageshack.us/img76/1617/image15rq0.png 16 http://img73.imageshack.us/img73/3043/image16sk3.png 17 http://img73.imageshack.us/img73/2608/image17cj4.png |
|
|
|
4 Apr 2007, 20:56
Message
#12
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
CITATION(neo927 @ 4 Apr 2007, 21:26) [snapback]2166560[/snapback] Eclipse me paraît un compilateur très puissant mais pour un Newbie comme moi... il est très puissant avec trop de paramètres... Eclipse n'est pas un compilateur, c'est une interface de développement qui se contente d'appeler make et gcc. Si tu ne maîtrises pas alors pour commencer la bonne école passe par le terminal et quelques commandes simple : gcc et make. D'ailleurs, as-tu installé les outils de développement d'Apple qui t'installent gcc et make ? Tes photos sont trop petites, on ne voit rien. Ce message a été modifié par ntx - 4 Apr 2007, 21:00. |
|
|
|
6 Apr 2007, 11:22
Message
#13
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
J'ai fait l'effort d'installer les CDT sur mon Eclipse 3.2.x
En plaçant le makefile dans le "source folder", je peux compiler mais la config de "Run..." ne trouve pas l'executable qui est bien construit et rendu executable par un chmod. Je crois qu'il faut lire un peu de doc. J-P |
|
|
|
6 Apr 2007, 18:05
Message
#14
|
|
|
Nouveau Membre Groupe : Membres Messages : 9 Inscrit : 29 Mar 2007 Membre no 83 686 |
Eclipse est le programme qui je pensais etre le mieux pour remplacer DevC++ sur PC. Ca fait 3semaines que je suis sur Mac... Je veux bien essayé d'utiliser le terminal mais, vous auriez pas un tutitoriel bien fait ou un site qui serait bien pour apprendre à m en servir?
Pour l'installation du developper, je ne sais pas exactement se qu y est installé sur le Mac, je l'ai acheté d'occasion et la personne qui me l a vendu ne pas encore fournis les CD qu y allaient avec (je pensais le formater pour savoir exactement qu est ce qu 'il a dans le ventre. Pour les photos, je veux bien faire un ZIP mais je sais pas exactement laquelle sera la plus intéressante. |
|
|
|
6 Apr 2007, 20:19
Message
#15
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Les photos sont trop petites pour être vraiment utiles. Puisque je vois le meme comportement je vais fouiner sur ma machine.
Mais il n'y a pas de miracle il faut lire de la doc sur Eclipse et CDT. J-P |
|
|
|
6 Apr 2007, 21:36
Message
#16
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
CITATION(neo927 @ 6 Apr 2007, 19:05) [snapback]2168864[/snapback] Eclipse est le programme qui je pensais etre le mieux pour remplacer DevC++ sur PC. Ca fait 3semaines que je suis sur Mac... Je veux bien essayé d'utiliser le terminal mais, vous auriez pas un tutitoriel bien fait ou un site qui serait bien pour apprendre à m en servir? Une petite recherche sur le forum et sur Google Project Omega CITATION Pour l'installation du developper, je ne sais pas exactement se qu y est installé sur le Mac, je l'ai acheté d'occasion et la personne qui me l a vendu ne pas encore fournis les CD qu y allaient avec (je pensais le formater pour savoir exactement qu est ce qu 'il a dans le ventre. Si les outils de dev sont installés tu as un répertoire "Developer". Il te faut obsolument les CD de Mac OSX, exiges les de ton vendeur. Ensuite il sera sage de tout réinstaller pour avoir quelque chose de propre. Les outils de dev sont sur les CD ou téléchargeables sur l'ADC (10.3->XCode 1.5, 10.4-> XCode 2.4.1) |
|
|
|
7 Apr 2007, 07:49
Message
#17
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
J' ai trouvé ce tuto beaucoup plus large qui permet de préparer le projet comme ceux open source, avec les fichiers configure et autres, et ce sont des animations, genre flash.
J-P PS: Je suis en train de tester le tuto, il nécessite automake 1.9 ou mieux (1.10 est la dernière), nous avons 1.6.3 en standard. Idem pour autoconf, il faut 1.60 ou mieux (2.61 est la dernière), nous avons 2.59 en standard. @suivre Finalement : 1) Avec les mise à jour, la préparation se fait, et un Makefile est généré par le configure (une usine à gaz ce Makefile) 2) Malgré tout il ne fonctionne pas et le make final part à l'ouest, il ne sait pas faire bin/hello avec hello.c placé dans le dossier src. 3) Malgré tout le tuto donne une idée de ce qu'il faut faire (comment créer les targets) Si j' avance encore, je mettrai à jour ces notes @+ J-P ON EFFACE TOUT Ce que j'ai fait au dessus est intéresseaant (pour tous ceux qui veulent créer un projet Open Source) mais pas nécessaire du tout. La clé est la configuration d'une propriété du projet : - Clic sur le projet dans le panneau vertical de gauche - Clic droit sur Propriétés... - Clic sur C/C++ MakeProject - Clic sur l'onglet Binary Parser - Déselection de Elf parser - Sélection de Mach-O parser <<<--- C'est çà quii fait la différence ! Il faut aussi créer (pour Eclipse) la cible du Makefile. - Clic sur le projet - Clic droit sur "Create Make Target" - Clic sur OK si la cible principale s' appelle "all" comme c' est la tradition. Puis pour faire le build - Menu Project/Build All La config de Run peut ensuite être créée et lancée. J-P Ce message a été modifié par Jaypee - 7 Apr 2007, 15:16. |
|
|
|
7 Apr 2007, 19:19
Message
#18
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 99 Inscrit : 11 Aug 2004 Membre no 21 968 |
Bizarre ces problèmes, à l'époque où j'avais utilisé Eclipse CDT j'avais eu aucun problème, et là comme ce post me semblait bizarre j'ai essayé et j'ai eu des problèmes aussi. J'ai bricolé un peu et maintenant ça marche mais je sais pas exactement ce qui a été déterminant (si ce n'est que j'ai mis à jour le plug-in CDT).
Sinon vu que tu as l'air assez "débutant", si rien ne t'obliges à utiliser Eclipse tu peux plutôt envisager XCode, avec pourquoi pas le renfort de TextMate comme éditeur de texte. |
|
|
|
![]() ![]() |
| Nous sommes le : 3rd April 2026 - 08:15 |