2017-09-28 3 views
0

Ich versuche, einen C-Compiler mit Cython in einer 64-Bit-Windows 7-Plattform auszuführen.MinGW_w64 fehlende DLLs

Nachdem ich verschiedene Probleme mit den C-Compilern von Visual Studio und MinGW32 hatte, habe ich versucht, MinGW_w64 zu installieren. Ich habe die folgenden Schritte ausgeführt:

-I heruntergeladen und extrahiert winbuilds von http://mingw-w64.org/doku.php/download/win-builds, und ich wählte die Base GCC-Paket mit C-Unterstützung.

-I hinzugefügt C:\PATH_TO_WINBUILDS und C:\PATH_TO_WINBUILDS\bin in der PATH Windows-Umgebungsvariable.

-I schrieb helloworld.c, ein sehr einfaches C-Programm:

#include<stdio.h> 

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

-Dann in cmd schrieb ich:

gcc helloworld.c -o helloworld.exe 

und ein Dialogfeld erscheint mit der folgenden Fehlermeldung aus:

Unmöglich, Programm zu starten, weil libiconv.dll auf Ihrem Computer fehlt. Installieren Sie das Programm neu, um das Problem zu beheben.

Die DLL-Datei wird nicht im Ordner lib von MinGW_w64 angezeigt. Ich habe versucht, libiconv.a und libiconv.dll.a von der MinGW32 lib Ordner auf die lib Ordner von MinGW_64 zu kopieren, aber immer noch kein Glück.

Irgendwelche Ideen?

+0

Ich würde empfehlen, eine eigenständige Installation von Mingw-W64, nicht diese "Win-Builds" (die aussieht wie noch ein schlecht gewarteter Paket-Manager). Für einen minimalen Paketmanager zum Erstellen unixartiger Software (aber ohne volle POSIX-Unterstützung) hat das MSYS2-Projekt viel mehr Verkehr. –

+0

Diese Frage ist wirklich über das "Win-Builds" -Projekt, nicht über C, GCC, oder Mingw-W64 –

Antwort

1

Sie benötigen die DLL-Datei, nicht die .a Link-Bibliotheksdateien. libiconv.dll sollte irgendwo im Verzeichnis bin existieren. Wenn es nicht da ist, müssen Sie es aus dem Internet holen oder selbst kompilieren. Alternativ könnten Sie einfach statisch mit der iconv-Bibliothek verknüpfen.

Sobald Sie die DLL finden, stellen Sie sicher, dass es in einer der folgenden Positionen ist: * die% PATH% * die entsprechende C:\Windows\system32 oder C:\Windows\SysWOW64 Verzeichnis * (vorzugsweise) neben ausführbaren

+0

danke für den Tipp, ich fand libiconv.dll im Internet, aber es funktioniert immer noch nicht, ich habe jetzt eine Fehlermeldung: 'Die Anwendung wurde nicht korrekt gestartet (0xc000007b)'. – SimonLR

+0

Was bedeutet es, statisch mit der iconv-Bibliothek zu verknüpfen? Wie mache ich das? Prost – SimonLR

+0

put '-static' vor der Verknüpfung:' g ++ ... -static -liconv' –

0

Ich war kann das Problem beheben, indem eine andere Version auf dem Paket von SourceForge heruntergeladen wird. Danke!

+0

Das ist keine Antwort. –