2012-08-03 12 views
5

Ho una libreria statica compilata con Visual Studio e voglio collegarmi ad essa da MinGW.Come posso convertire un VBS .lib in un MinGW .a?

Ho provato a cambiare il suffisso ma ricevo un sacco di avvertenze come: Warning: .drectve /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" ' unrecognized.

Anche alcuni errori tra cui: ./libetpan.a(Release_ssl/mailimap.obj):(.text[_mailimap_noop]+0x7): undefined reference to ___ security_cookie'`.

Qualsiasi aiuto è molto apprezzato.

risposta

3

.lib e .a non sono lo stesso formato. La modifica dell'estensione del file sta mentendo al linker, motivo per cui non funziona.

Se è una libreria a 32 bit che si sta tentando di collegare, dovrebbe "funzionare". MinGW supporta file .lib a 32 bit. In caso contrario, presenta una segnalazione di errore.

Se si tratta di una libreria a 64 bit, e se si utilizza MinGW-W64 o qualcosa basato su di esso (come la versione TDM-GCC a 64 bit) Vedere la MinGW-w64 FAQ entry:

gendef mylib.dll 
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libmylib.a --input-def mylib.def 
Problemi correlati