2009-09-25 25 views
1

Je suis en train de construire un c très simple ++ programme Eclipse et je reçois une erreur très stupide:construction de la difficulté C++ projet dans Eclipse CDT dans OS X pour une raison stupide


**** Internal Builder is used for build    **** 
g++ -O0 -g3 -Wall -c -fmessage-length=0 -oMyFirst.o ../MyFirst.cpp 
g++ -oLinkedLists MyFirst.o 
ld: unknown option: -oLinkedLists 
collect2: ld returned 1 exit status 
Build error occurred, build is stopped 

Temps consommé: 403 ms.


Le problème est que g ++ dans osx n'aime pas le drapeau -o dans la commande « g ++ -oLinkedLists MyFirst.o » juste à côté du nom du fichier exécutable ... Quelqu'un sait-il comment configurer soit g ++ accepter cela ou comment configurer le constructeur dans Eclipse de telle sorte qu'il y ait un espace entre l'indicateur -o et le nom de fichier comme ceci: "g ++ -o LinkedLists MyFirst.o"?

Merci d'avance!

Répondre

1

Mark m'a fait réellement dans la bonne direction, mais ce que je devais faire pour rendre le travail était d'aller à: Projet >> Propriétés >> C/C++ >> Construire la chaîne d'outils Editeur

J'ai ensuite changé la boîte de sélection "Current toolchanin" à "MacOSX gcc" et qui l'a corrigé :)

0

J'utilise Eclipse CDT 3.5 sur Mac OS X 10.5 et il fonctionne -

**** Internal Builder is used for build    **** 
g++ -I/opt/local/include -O0 -g3 -Wall -c -fmessage-length=0 -osrc/tet.o ../src/tet.cpp 
g++ -o tet src/tet.o 
Build complete for project tet 

Je reçois un espace dans la ligne de lien pour mon exécutable tet

J'utilise les paramètres par défaut

Dans paramètres-> C/C++ Build-> Paramètres-> Mac OSX C++ linker le modèle de ligne de commande est

$ {COMMAND} $ {FLAGS} $ {OUTPUT_FLAG} $ {OUTPUT_PREFIX} $ {SORTIE} $ {INPUT}

+0

Merci pour votre aide! – hdx

2

Pour clarifier ce problème, la solution n'est pas nécessairement d'utiliser la chaîne d'outils MacOSX gcc. Le problème est avec le modèle de ligne de commande pour l'éditeur de liens dans la chaîne d'outils. Tout ce que vous devez faire pour résoudre le problème est d'éditer le modèle de ligne de commande pour s'assurer qu'il y a des espaces entre chaque terme.

Par défaut, le modèle de ligne de commande pour l'éditeur de liens de gcc Linux est quelque chose comme: $ {commande} $ {DRAPEAUX} $ {OUTPUT_FLAG} $ {OUTPUT_PREFIX} $ {SORTIE} $ {ENTREES}

Remarque le manque d'espaces entre $ {OUTPUT_PREFIX} et $ {OUTPUT}. C'est le noeud du problème. Ajoutez simplement un espace entre ces deux termes, et votre problème est résolu.

+0

Où est ce motif? – hdx

+0

Tout d'abord - merci, agodbehere! J'ai regardé beaucoup d'endroits avant de trouver ça! Pour répondre à hdx, sur la version d'Eclipse que j'utilise (Eclipse platform 3.5.2) le modèle de ligne de commande est sur: projet-> properties-> C/C++ Build-> Settings et choisissez le premier 'onglet' Tool Settings, cliquez sur sur la ligne du compilateur GCC C++ et sur le côté droit du volet, vous devriez voir 'Paramètres experts: modèle de ligne de commande'. Assurez-vous de le changer pour toutes vos configurations (par exemple, déboguer et relâcher) et répétez aussi pour le Linker G ++ C++ (c'est-à-dire cliquez dessus à gauche, puis insérez l'espace dans la ligne de commande à droite). – Mick

+0

Une autre chose - cela a apparemment maintenant été corrigé, donc devrait être ok dans les futures versions, espérons-le: Bugzilla - Bug 232373 – Mick