web-dev-qa-db-fra.com

Erreur Cygwin Gcc lors du chargement des bibliothèques partagées?

J'ai installé Cygwin après avoir exécuté MinGW pendant un moment. Mais quand j'essaye de compiler la console, ça me donne:

/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

Qu'est-ce que ça veut dire?

10
BRHSM

J'ai le même problème et j'ai trouvé la solution.

Selon la FAQ de Cygwin

Q: Pourquoi C:\cygwin\usr\bin est-il invisible à partir de Windows?

R: Parce que il n’existe pas vraiment . En cygwin,/usr/bin est simplement un lien vers/bin.

Donc, essayer d'ajouter "C:\cygwin\usr\bin" à PATH sera en vain.

Ajoutez "C:\cygwin64\bin" à PATH à la place. J'espère que cela t'aides :)

9
Raku Escape

Il vous manque une bibliothèque, veuillez exécuter cygcheck /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe ou ldd /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe pour voir quelle est la bibliothèque manquante.

5
Thronghar

Ajout de quelques informations de fond. J'ai eu le même problème en construisant mon propre programme et en le liant contre graphviz cgraph.dll. Il s’avère que cela est lié aux endroits où Windows cherche les DLL (voir ici: https://msdn.Microsoft.com/en-us/library/7d83bc18.aspx ) Donc, ajouter le chemin de votre bibliothèque manquante à PATH devrait résoudre le problème. 

Il est regrettable que le message n'inclue pas le nom de la bibliothèque. Heureusement, cmd.exe vous donne ce nom (donc c'est bon pour quelque chose après tout;)

1
Wim Yedema

Très probablement, il vous manque simplement/usr/bin dans la variable PATH. Ajouter 'export PATH =/usr/bin: $ PATH' à votre fichier .bashrc résoudra le problème.

1
Frank-Rene Schäfer

Je suis également venu cette erreur sur la machine Windows en exécutant le fichier .exe généré par scilab2C i.e toolbox pour Scilab

Pour Windows 32 bit Ajoutez le chemin de la variable d'environnement comme suit:

C:\cygwin\usr\i686-pc-cygwin\bin

J'espère que cela résoudra votre problème. 

0
Mushir

Incluez-vous le chemin d'accès à votre répertoire lib? On dirait que vous n'êtes pas

Je ne connais pas très bien Cygwin, j'utilise principalement MinGW, mais je pense que le message d'erreur est éloquent. 

0
Imanol Fotia

(Je préférerais d'abord poser une question dans les commentaires, mais je n'ai pas encore assez de réputation.)

Votre cc1 est incapable de charger certaines DLL dont il a besoin pour démarrer. En examinant le code source de Cygwin, il peut s'agir d'une bibliothèque spécifiée dans LD_PRELOAD ou, plus probablement, d'une bibliothèque dont dépend l'exécutable. Le ? dans le message d'erreur semble être la valeur de retour par défaut de find_first_notloaded_dll (hookapi.cc), au cas où la fonction ne pourrait pas déterminer quelle bibliothèque est manquante.

Pour diagnostiquer le problème, je suggère de vérifier votre variable PATH (ou même de l'effacer de tout chemin non Cygwin et d'essayer de nouveau la compilation) et/ou d'utiliser Dependency Walker pour trouver les DLL manquantes (démarrez-le à partir d'un shell Cygwin , donc il peut voir la même PATH). ldd (fourni avec Cygwin) peut également donner des indices, mais je ne parierais pas dessus.

Il est possible qu'une réinstallation propre de Cygwin soit nécessaire pour résoudre le problème.

0
David Macek