IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Problème avec la compilation avec Eclipse (Plugins C/C++)
Options
neo927
posté 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.
Go to the top of the page
 
+Quote Post
noop
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 ?
Go to the top of the page
 
+Quote Post
Jaypee
posté 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
Go to the top of the page
 
+Quote Post
neo927
posté 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?
Go to the top of the page
 
+Quote Post
noop
posté 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.
Go to the top of the page
 
+Quote Post
neo927
posté 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
Go to the top of the page
 
+Quote Post
Jaypee
posté 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.
Go to the top of the page
 
+Quote Post
neo927
posté 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 sad.gif
Go to the top of the page
 
+Quote Post
noop
posté 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 sad.gif


Qu'est ce que te dit exactement Eclipse. Peut tu faire un copier coller ?
Go to the top of the page
 
+Quote Post
Jaypee
posté 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
Go to the top of the page
 
+Quote Post
neo927
posté 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


Go to the top of the page
 
+Quote Post
ntx
posté 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.
Go to the top of the page
 
+Quote Post
Jaypee
posté 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
Go to the top of the page
 
+Quote Post
neo927
posté 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.
Go to the top of the page
 
+Quote Post
Jaypee
posté 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
Go to the top of the page
 
+Quote Post
ntx
posté 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)
Go to the top of the page
 
+Quote Post
Jaypee
posté 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 wink.gif
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.
Go to the top of the page
 
+Quote Post
ola*
posté 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.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 3rd April 2026 - 08:15