Ich möchte eine statische Bibliothek (* .LIB-Datei) GNU libiconv für Windows erstellen, die mit anderen Bibliotheken in verwendet werden soll Visual C ++. Andere Bibliotheken, die ich verwende, sind mit "MultiThreaded DLL" (/ MD) Runtime Option gebaut. Also, ich muss Libiconv mit der gleichen Option erstellen.
Problem ist das libiconv
benutzt GNU Build System und ich möchte mit / MD Option kompilieren. Sie können die Quellstruktur von libiconv hier sehen:
Ссылка
Herr. Zlatkovic verwaltet den Windows-Port von GNU libiconv
für libxml2
Sie können sie hier sehen:
ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32 .zip
Ich kann seinen Port nicht benutzen. Ich muss aus der neuesten Version von libiconv-1.13 bauen. Ich frage mich, wie dieser Typ es portiert hat? Kann mir jemand bitte sagen, wie man * .lib daraus erstellt und mit MSVC kompiliert?
BEARBEITEN:
Eigentlich muss ich noch mehr Gnu-Bibliotheken mit denselben Einstellungen erstellen. Also, wenn ich eine Lösung für eine Bibliothek bekomme. Ich kann das Gleiche für alle anderen tun.
Ich bin der OP. MSYS ist genau das, wonach ich gesucht habe.
Installieren Sie einfach MinGW & amp; MSYS, die die Shell sh.exe
& amp; make.exe
, mit dem Sie Makefile
konfigurieren und generieren können, danach können Sie make.exe verwenden, um es auszuführen.
Es ist so einfach.
Ich fand PARK Youngho's Wie man libiconv erstellt mit Microsoft Visual Studio über Das Code-Projekt , um vollständig und sauber zu sein (für VS2010 und GNU libiconv 1.14).
Ein kleiner Zusatz zu Ihrer Antwort. Ich hatte das gleiche Problem und fand, dass die MinGW + MSYS-Lösung perfekt war.
Allerdings musste ich etwas weiter gehen und auch die .lib-Datei generieren, um mit der resultierenden DLL verlinken zu können.
Das habe ich gefunden:
generiert eine .def-Datei von der DLL mit dumpbin (einem Visual Studio-Tool).
Generieren Sie die .lib-Datei aus der .def-Datei mit dem lib-Programm (auch Visual Studio-Tool)
Damit können Sie gegebenenfalls bestimmte Link-Flags angeben. Alles hier detailliert (ich bin nicht der Autor dieser Methode): Ссылка
Ich habe auch festgestellt, dass dieses lib / dll-Paar sowohl mit MD- als auch mit MDd-Bibliotheken verknüpft werden kann.
Ich hoffe, dass es Leuten helfen kann, die diesen Beitrag finden, wie es mir geholfen hat.
-David
kompilieren Sie sie mithilfe von MinGW und verwenden Msys für die Umgebung, falls erforderlich. Die .a-Dateien von MinGW sind anscheinend, laut der Mailing-Liste, das gleiche Format wie .lib-Dateien (mach einfach eine Umbenennung). Vielleicht möchten Sie zuerst prüfen, ob die statische Bibliothek iconv bereits im MinGW-Download / Dateisystem enthalten ist.
Edit: Es ist in msys (C: \ msys \ 1.0 \ lib), zusammen mit:
und zusätzlich
Edit: Ist es hier drin, die Libiconv, die du brauchst? Diese Versionen scheinen MSVC-Makefiles zu haben :) Ссылка
Tags und Links c linux visual-c++ cross-compiling static-libraries