2009-09-20 7 views
5

J'utilise Eclipse CDT avec Cygwin GCC 3 comme compilateur. Mon projet utilise un Makefile personnalisé.Eclipse CDT avec Cygwin GCC: découverte automatique des symboles et des chemins

Le problème est que lors du débogage du code, il n'a pas pu localiser les fichiers source, même si j'ajouté un mappage de chemin personnalisé pour: /cygdrive/c <-> c:\

Cela en plus du fait que je reçois "non résolue inclusion "pour tous les fichiers d'en-tête standard, même si le programme compile et s'exécute correctement.

J'ai retracé le problème à l'option « découverte automatique », ce qui montre l'erreur suivante:

screenshot1

Notez que je me suis assuré que le répertoire de l'espace de travail est sur un chemin sans espaces. La chose étrange est que quand je lance cette commande problématique dans la coquille, il fonctionne très bien avec la sortie suivante:

$ gcc -E -P -v -dD C:/Users/Amro/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c 
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs 
Configured with: /managed/gcc-build/final-v3-bootstrap/gcc-3.4.4-999/configure --verbose --program-suffix=-3 --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-included-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug 
Thread model: posix 
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) 
/usr/lib/gcc/i686-pc-cygwin/3.4.4/cc1.exe -E -quiet -v -P -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api C:/Users/Amro/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c -mtune=pentiumpro -dD 
ignoring nonexistent directory "/usr/local/include" 
ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/include" 
ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api" 
#include "..." search starts here: 
#include <...> search starts here: 
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include 
/usr/include 
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api 
End of search list. 
#define __STDC_HOSTED__ 1 
#define __GNUC__ 3 
     [.... truncated ....] 
#define __unix__ 1 
#define __unix 1 

J'ai aussi essayé d'ajouter manuellement au chemin d'inclusion:

screenshot2

Comment puis-je résoudre ce problème pour qu'il découvre à la fois les chemins d'inclusion et les symboles définis? Devrais-je essayer de désactiver la découverte automatique et de coder en dur les chemins requis dans le fichier .cproject? Toute aide est appréciée (je demande seulement que vous ne suggériez pas d'utiliser MinGW au lieu de Cygwin!)

+0

Comment exécuter vous et débogage dans Eclipse lorsque vous ajoutez des chemins comme ça? après avoir désactivé la découverte automatique –

Répondre

6

Votre source est une source fréquente de plaintes concernant le mélange de l'éclipse & cygwin. Le point crucial du problème est que l'éclipse ne comprend que l'environnement Windows & cygwin, et pas tellement. Définissez vos chemins dans le style des fenêtres Eclipse. Aussi/usr est sous C: \ cygwin, vous devez lui donner le chemin complet. Sinon éclipse va essayer de le trouver sous c: \ usr et arriver vide.

De même, vos définitions de chemin sont-elles ajoutées ou remplacent votre environnement Windows? Vous serez probablement plus heureux d'ajouter à votre environnement plutôt que de le remplacer.

jamais essayé autodetect - vous pouvez avoir à coder en dur ces chemins dans .cproject

+2

Merci, j'ai réussi à corriger les avertissements en désactivant la découverte automatique et en ajoutant manuellement les chemins * 'Style Windows' *. Dommage qu'il ne fonctionne pas avec Cygwin hors de la boîte comme le fait NetBeans. – Amro

Questions connexes