Le programme ne peut pas démarrer car cygwin1.dll est absent... dans Eclipse CDT
J'ai eu Eclipse pour Java sur mon ordinateur pendant quelques années, et a décidé d'installer le CDT et apprendre C. j'ai installé les deux MinGW
et Cygwin
et le CDT détecte et tente de les utiliser quand je fais un nouveau projet.
- Je choisir File > New C++ Project
et choisissez Hello World C++ Project
et la CygwinGCC
de la chaîne. J'ai le nom du projet "asdf" et cliquez sur "Build Debug" dans la barre d'outils. Le compilateur se termine sans erreur. J'ai frappé à Exécuter et rien ne se passe.
La navigation dans le répertoire de projet manuellement et en cours d'exécution asdf.exe me donne un message d'erreur indiquant:
"The program can't start because cygwin1.dll is missing from your computer. Try reinstalling the program to fix this problem."
La même chose se produit avec MinGW, seulement une autre dll est manquant.
Que dois-je faire pour avoir un utilisable .exe?
(Je suis sous Windows 7 x64 et la dernière version d'Eclipse et le CDT.)
EDIT:
La sortie du compilateur est comme suit:
**** 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:\Users\Shawn\Dropbox\eclipse\asdf\Debug
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
Vous devez vous connecter pour publier un commentaire.
Ce message d'erreur signifie que Windows n'est pas capable de le trouver "cygwin1.dll". Les Programmes que l'Cygwin gcc créer dépendent de cette DLL. Le fichier est une partie de cygwin , donc, très probablement, il est situé dans C:\cygwin\bin. Pour résoudre le problème de tout ce que vous avez à faire est d'ajouter C:\cygwin\bin (ou de l'endroit où cygwin1.dll peut être trouvé à votre chemin d'accès système. Sinon, vous pouvez 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 de fichiers exécutables, de sorte que si vous inspectez votre programme généré, il vous indique quels dépendances manquantes et qui sont résolus.
C:\cygwin64\bin
à votre chemin d'accès au système? Je suppose que votre binaire est compilé en 64 bits.CYGWIN1.DLL
est affiché en rouge. Que puis-je faire maintenant?;
avant le dernier dossier, et aussi tapéC:cygwin64\bin
. Le problème est maintenant résolu.cygwin1.dll
àC:\windows
répertoire.Vous pouvez compiler soit avec Cygwin est
g++
ou MinGW (via stand-alone ou en utilisant Cygwin package). Toutefois, pour l'exécuter, vous devez ajouter leCygwin1.dll
(et d'autres) d'accès à la système PATH de Windows, avant tout cygwin style chemins.Donc ajouter:
;C\cygwin64\bin
à la fin de votre Windows systèmePATH
variable.Aussi, de compiler pour une utilisation dans CMD ou PowerShell, vous devrez peut-être utiliser:
(Cela appelle le cross-compilateur, si installé).