Come costruire gnu `libiconv` on & per windows?

Voglio costruire una libreria statica (*.LIB file) GNU libiconv su windows per essere utilizzato con altre biblioteche, in Visual C++. Altre librerie che sto usando sono costruiti con “Multithreading DLL” (/MD) opzione di Runtime. Così, ho bisogno di costruire libiconv con la stessa opzione.

Problema è il libiconv utilizza GNU sistema di generazione e voglio compilare con l’opzione /MD. Si può vedere la struttura di origine di libiconv qui:
http://cvs.savannah.gnu.org/viewvc/libiconv/?root=libiconv

Signor Zlatkovic mantiene la porta windows GNU libiconv per libxml2

li puoi vedere qui:

ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip

Non posso usare la sua porta. Ho bisogno di costruire l’ultima versione di libiconv-1.13. Mi chiedo come questo ragazzo ha fatto il port? Può qualcuno dirmi come costruire *.lib da questo e compilarlo con MSVC?

EDIT:

In realtà, ho bisogno di creare alcuni più librerie gnu con le stesse impostazioni. Quindi, se ho la soluzione per una libreria. Posso fare la stessa cosa per tutti gli altri.

InformationsquelleAutor claws | 2010-04-28

 

4 Replies
  1. 3

    Un po ‘ oltre la tua risposta.
    Ho avuto lo stesso problema e ha trovato che il MinGW + MSYS era la soluzione perfetta.

    Però, ho bisogno di andare un po ‘ di più e generare anche il .lib file, in modo da essere in grado di collegare con la conseguente dll.

    Questo è quello che ho trovato:

    • generare un .def file dll con dumpbin (Visual Studio).

    • generare .lib file dal .def lib programma (Visual Studio strumento troppo)

    Questo consente di specificare alcuni link di bandiere, se del caso.
    Tutto dettagliate qui (io non sono l’autore di questo metodo):
    http://wiki.videolan.org/GenerateLibFromDll

    Ho anche capito che questo lib/dll coppia può essere collegato sia con MD e MDd librerie.

    Speranza che possa aiutare le persone che trovano questo post, come mi ha aiutato.

    -David

  2. 1

    compilare utilizzando MinGW usando Msys per l’ambiente, se necessario. MinGW è .un file apparentemente, secondo le mailing list, lo stesso formato .file lib (basta fare un rename). Si potrebbe desiderare di controllare in primo luogo per vedere se il iconv libreria statica è già comprese nel MinGW download /file system.

    Edit: è in msys (C:\msys\1.0\lib), con:

    • libiconv.un
    • libiconv.dll.un
    • libiconv.la

    e inoltre

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

    Edit: è qui, il libiconv di cui hai bisogno? queste versioni sembrano avere MSVC makefile 🙂 http://www.opensource.apple.com/source/libiconv/

    • ma come faccio a eseguire ./configure che è uno script di shell? Più sopra, come faccio a dare “Multithreading DLL di Runtime” opzione di g++ compilatore MinGW.
    • Si potrebbe non faccia lo stesso problema con il MinGW toolchain che lo sviluppatore sta cercando di evitare. In sostanza, l’opzione di multithreading per MSVC compilatore / linker consente la DLL per l’utilizzo di più cumuli piuttosto che un unico mucchio, da una rapida occhiata, e previene i problemi che si verificano.
    • Beh, io non posso usare GNU toolchain per l’intero progetto. Perché 1. Io non sono che la familiarità con MinGW 2. Sto utilizzando MFC e 3. tutte le altre librerie stanno bene con MSVC & li ho compilati in MSVC. Ho solo bisogno di un modo per compilare la gnu libs per windows. questione importante è come ./configure eseguire per creare il makefile? Anche io non uso precompilato lib file per libiconv perché Se compilare questo me stesso. Io uso lo stesso metodo per la compilazione di altre richieste di gnu libs.
    • Grazie per la fornitura di modi alternativi. Ma ho bisogno di sapere il modo per farlo, perché ho bisogno di costruire altre GNU libs in MSVC con /MD
    • Fatto il check out opensource.apple.com/source/libiconv per vedere se era la versione di cui hai bisogno? La numerazione sembra un po ‘ strano però.
    • Inoltre, provare a copiare Makefile.msvc da una versione precedente di libiconv una versione più recente, e vedere se funziona. Proverò e vi guiderà attraverso tutti i problemi. Uso l’ultima versione che ha Makefile.msvc nella prima è stato rimosso.
    • Afferrare il MSVC il file da qui — questi sono morti i file che sono stati rimossi da CVS quando msvc supporto è stato sconsigliato. Nulla con thew tag “Rimuovere MSVC/nmake costruire il supporto.”, Credo di si. cvs.savannah.gnu.org/viewvc/libiconv/…
    • Non credo che hai capito cosa sto cercando di dire. Non voglio prendere il metodo che si stanno proponendo. Perché ho bisogno di compilare un paio di più le librerie gnu per i quali non sono Makefile.msvc. Quindi, si prega di provare a suggerirmi qualche altro modo.

  3. 1

    Sono l’OP. MSYS è la cosa esatta che cosa stavo cercando.

    Basta installare MinGW & MSYS che contiene la shell sh.exe & make.execon cui è possibile configurare e generare un Makefile dopo di che è possibile utilizzare make.exe per eseguirlo.

    La sua così semplice.

Lascia un commento