Eclipse CDT avec Cygwin GCC: détection automatique des symboles et des chemins
Je suis à l'aide d'Eclipse CDT avec Cygwin GCC 3 comme compilateur. Mon projet est à l'aide d'un custom Makefile.
Le problème est que lors du débogage du code, il ne pouvait pas localiser la source des fichiers, même si j'ai ajouté un chemin d'accès personnalisé à la cartographie pour: /cygdrive/c <-> c:\
Qu'outre le fait que je suis "en suspens inclusion" pour tous les fichiers d'en-tête, même si le programme compile et fonctionne parfaitement.
J'ai tracé le problème de la "la découverte automatique", qui indique l'erreur suivante:
Noter que j'ai fait en sorte que le répertoire d'espace de travail est sur un chemin sans espaces. La chose étrange est que lorsque j'exécute cette problématique de commande dans le shell, 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 l'include path:
Comment puis-je résoudre ce problème de manière que l'on découvre à la fois les chemins à inclure et les symboles définis? Devrais-je essayer de désactiver la détection automatique et de coder en dur le nécessaire chemins dans le .cproject fichier? Toute aide est appréciée (je vous demande seulement de ne pas vous suggérons d'utiliser MinGW au lieu de Cygwin!)
OriginalL'auteur Amro | 2009-09-20
Vous devez vous connecter pour publier un commentaire.
Le vôtre est un frequest source de plaintes concernant le mélange eclipse & cygwin. Le noeud du problème, c'est que eclipse comprend seulement l'environnement windows & cygwin, bien que pas tellement.
Définir vos chemins d'accès dans eclipse windows style. Aussi est /usr est en vertu de C:\cygwin, vous devez donner le chemin d'accès complet. Sinon eclipse va essayer de le trouver sous c:\usr et rien non plus.
Aussi, sont vos définitions de chemin ajout ou le remplacement de votre environnement windows? Vous aurez probablement à être plus heureux, en ajoutant à votre environnement plutôt que de le remplacer.
N'a jamais essayé de détection automatique - vous pouvez avoir à coder en dur ces chemins .cproject
OriginalL'auteur DaveParillo