Cygwin1.dll introuvable lors de l'exécution d'un programme écrit en C. Comment puis-je faire Windows le trouver?
Donc je suis en train de lancer mon premier hello world prog écrit en C. j'ai compilé dans eclipse et obtenir aucune erreur, mais quand j'essaie de le lancer j'obtiens:
"Cette application n'a pas pu démarrer car cygwin1.dll n'a pas été trouvé."
J'ai trouvé ce post ce qui semble indiquer que je devrais l'ajouter au PATH de Windows, et j'ai utilisé cette de le faire. Alors maintenant, "Path" dans mes variables d'environnement a ";C:\cygwin\bin\cygwin1.dll" ajouté à la fin. Toujours pas de worky. Quelqu'un a une idée de ce que je fais de mal? Mon "programme" ressemble à ceci:
#include <stdio.h>
main()
{
printf("hello, world\n");
}
OriginalL'auteur | 2008-12-03
Vous devez vous connecter pour publier un commentaire.
La variable d'environnement PATH doit contenir le répertoire contenant cygwin1.dll, pas le chemin d'accès à cygwin1.dll lui-même. Donc, assurez-vous que le CHEMIN a la chaîne
"C:\cygwin\bin"
.Exécuter à partir de la ligne de commande exécuter cmd.exe (ou, mieux encore, il suffit de lancer Cygwin), naviguez jusqu'au répertoire de l'exécutable, et exécutez le fichier exécutable à partir de la ligne de commande.
Ou de les mettre dans une Lecture après vous printf.
Merci merci merci. 😀 C'est trop cool 🙂
OriginalL'auteur Adam Rosenfield
Par le chemin, je implorer vous de ne pas aveuglément à ajouter un répertoire contenant cygwin1.dll pour le CHEMIN d'accès système. Le chemin est recherché de manière séquentielle. Si vous avez d'anciennes ou de nouvelles versions de la Cygwin d'exécution dans le chemin, d'autres programmes liés à l'encontre de cygwin1.dll pourriez casser horriblement (et il n'est pas trivial pour comprendre ce qui s'est passé, sauf si vous savez que vous êtes à la recherche pour une autre version de la DLL.)
Ce que vous devez faire est de copier cygwin1.dll (et autres Dll Cygwin votre programme peut nécessiter) dans le répertoire qui contient vos binaire puis de créer un vide (zéro de la longueur en octets) du fichier avec le même nom que votre exécutable, mais avec
.local
ajouté, c'est à dire, si votre exécutable estmytest.exe
, vous créez un fichier nommémytest.exe.local
. Qui dira le PE loader pour première look pour les Dll dans le répertoire qui contient vos données binaires, et ainsi éviter beaucoup de maux de tête plus tard.OriginalL'auteur Mihai Limbășan
J'ai eu le même problème... Adam Rosenfield réponse résolu à nice. À mon Ordinateur le chemin d'accès doit être
"C:\cygwin64\bin"
Première fois je n'ai pas reconnu que ma version de cygwin est le 64 bits... Mais c'est calme clair que ces peu de différence dans le chemin de la variable décide si cela fonctionnera ou pas.
OriginalL'auteur Martin Pfeffer
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é).
OriginalL'auteur not2qubit