Le programme ne peut pas démarrer car cygwin1.dll est manquant... dans Eclipse CDT

J'ai eu Eclipse pour Java sur mon ordinateur pendant quelques années, et j'ai décidé d'installer le CDT et d'apprendre C. j'ai installé MinGW et Cygwin et le CDT détecte et essaie de les utiliser quand je fais un nouveau projet. Je choisis Fichier > Nouveau projet C++ et je choisis le projet Hello World C++ et la chaîne D'outils CygwinGCC. Je nomme le projet "asdf" et j'appuie sur "Build Debug" dans la barre d'outils. Le compilateur se termine sans erreur. J'ai frappé à Exécuter et rien ne se passe. Navigation dans le répertoire du projet manuellement et exécution asdf.exe me donne une erreur en disant "le programme ne peut pas démarrer parce que cygwin1.dll est absent de votre ordinateur. Essayez de réinstaller le programme pour résoudre ce problème."La même chose se produit en utilisant MinGW, seule une dll différente est manquante. Que dois-je faire pour avoir un utilisable .exe? Je cours Windows 7 x64 et la dernière version D'Eclipse et du CDT.

Modifier: La sortie du compilateur est la suivante:

**** Build of configuration Debug for project asdf ****

make all 
Building file: ../src/asdf.cpp
Invoking: Cygwin C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/asdf.d" -MT"src/asdf.d" -o"src/asdf.o" "../src/asdf.cpp"
cygwin warning:
  MS-DOS style path detected: C:UsersShawnDropboxeclipseasdfDebug
  Preferred POSIX equivalent is: /cygdrive/c/Users/Shawn/Dropbox/eclipse/asdf/Debug
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Finished building: ../src/asdf.cpp

Building target: asdf.exe
Invoking: Cygwin C++ Linker
g++  -o"asdf.exe"  ./src/asdf.o   
Finished building target: asdf.exe
30
demandé sur Shawn Walton 2011-07-19 22:59:16

1 réponses

Ce message d'erreur signifie que Windows n'est pas capable de trouver "cygwin1.DLL". Les programmes créés par Cygwin gcc dépendent de cette DLL. Le fichier fait partie de cygwin , donc très probablement il est situé dans C:\cygwin\bin. Pour résoudre le problème tout ce que vous avez à faire est d'ajouter C:\cygwin\bin (ou l'emplacement où cygwin1.dll peut être trouvé) à votre chemin système. Vous pouvez également copier cygwin1.dll dans votre répertoire Windows.

Il est un bel outil appelé DependencyWalker que vous pouvez télécharger à partir de http://www.dependencywalker.com . Vous pouvez l'utiliser pour vérifier les dépendances des exécutables, donc si vous inspectez votre programme généré, il vous indique quelles dépendances sont manquantes et lesquelles sont résolues.

58
répondu phlogratos 2012-06-20 02:20:08