Wie erstellt man Gnu 'libiconv' auf & für Windows?

8

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.

    
claws 28.04.2010, 21:57
quelle

4 Antworten

1

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.

    
claws 06.05.2010, 04:13
quelle
8

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).

    
mheyman 17.04.2012 14:54
quelle
3

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

    
David 03.01.2011 16:43
quelle
1

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:

  • libiconv.a
  • libiconv.dll.a
  • libiconv.la

und zusätzlich

  • libiconv-2.dll (in C: \ msys \ 1.0 \ local \ bin)

Edit: Ist es hier drin, die Libiconv, die du brauchst? Diese Versionen scheinen MSVC-Makefiles zu haben :) Ссылка

    
Chris Dennett 28.04.2010 22:03
quelle