2017-09-28 8 views
0

J'essaie d'exécuter un compilateur C avec Cython dans une plate-forme Windows 7 64 bits. Après avoir rencontré divers problèmes avec les compilateurs C de Visual Studio et MinGW32, j'ai essayé d'installer MinGW_w64. Je l'ai fait les étapes suivantes:MinGW_w64 manquant dll

-I téléchargé et décompressé winbuilds de http://mingw-w64.org/doku.php/download/win-builds, et je choisi le paquet GCC de base avec le soutien C.

-J'ai ajouté C:\PATH_TO_WINBUILDS et C:\PATH_TO_WINBUILDS\bin dans la variable d'environnement Windows PATH.

-I écrit helloworld.c, un programme C très simple:

#include<stdio.h> 

main() 
{ 
    printf("Hello World"); 
} 

-Alors dans cmd je l'ai écrit:

gcc helloworld.c -o helloworld.exe 

Et une boîte de dialogue ressorte avec le message d'erreur suivant:

impossible de démarrer le programme car libiconv.dll est absent sur votre ordinateur. Réinstallez le programme pour corriger le problème.

Le fichier dll n'apparaît pas dans le dossier lib de MinGW_w64. J'ai essayé de copier libiconv.a et libiconv.dll.a à partir du dossier MinGW32 lib vers le dossier lib de MinGW_64, mais toujours pas de chance.

Des idées?

+0

Je recommande d'utiliser une installation autonome de mingw-w64, pas ce "win-builds" (qui ressemble à un autre gestionnaire de paquets mal entretenu). Pour un gestionnaire de paquets minimal permettant de créer un logiciel de type Unix (mais sans prise en charge POSIX complète), le trafic du projet MSYS2 est beaucoup plus élevé. –

+0

Cette question est vraiment sur le projet "win-builds", pas sur C, gcc, ou mingw-w64 –

Répondre

1

Vous avez besoin du fichier DLL, pas des fichiers de la bibliothèque de liens .a. libiconv.dll doit exister quelque part dans le répertoire bin. Si ce n'est pas le cas, vous devrez l'obtenir sur Internet ou le compiler vous-même. Alternativement, vous pouvez simplement créer un lien statique avec la bibliothèque iconv.

Une fois que vous trouvez la DLL, assurez-vous qu'il est dans l'un des endroits suivants: * le% PATH% * le C:\Windows\system32 ou C:\Windows\SysWOW64 approprié répertoire * (de préférence) à côté de votre exécutable

+0

merci pour le conseil, j'ai trouvé libiconv.dll sur internet, mais ça ne fonctionne toujours pas, j'ai maintenant un Message d'erreur: 'L'application n'a pas démarré correctement (0xc000007b)'. – SimonLR

+0

Que signifie lier statiquement à la bibliothèque iconv? Comment je fais ça? Bravo – SimonLR

+0

mettre '-static' avant le lien:' g ++ ... -static -liconv' –

0

J'étais capable de résoudre le problème en téléchargeant une autre version sur le paquet sur SourceForge. Merci!

+0

Ce n'est pas une réponse. –