MinGW - Como gerar LIB apartir de DLL?
Moderador: Moderadores
MinGW - Como gerar LIB apartir de DLL?
antigamente (ontem hehehe), qndo eu usavar xharbour + bcc, eu usava o comando IMPLIB do bcc para gerar uma lib a partir de uma dll.
E com o minGW, como faz pra gerar uma lib apartir de uma dll??
Janio
E com o minGW, como faz pra gerar uma lib apartir de uma dll??
Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
MinGW - Como gerar LIB apartir de DLL?
Retornando ao tópico preciso de um exemplo
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
MinGW - Como gerar LIB apartir de DLL?
Eu nao consegui e na época abandonei.
Tmb ainda tenho interesse no assunto
Janio
Tmb ainda tenho interesse no assunto
Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
MinGW - Como gerar LIB apartir de DLL?
Ola!
O segredo está no fonte do hbmk2.prg
Para quem quiser decifrar, tem para BCC e MSVC também.
Saudações,
Itamar M. Lins Jr.
O segredo está no fonte do hbmk2.prg
Código: Selecionar todos
STATIC FUNCTION win_implib_command_gcc( hbmk, cCommand, cSourceDLL, cTargetLib, cFlags )
LOCAL nResult
LOCAL cDef
LOCAL cSourceDef
LOCAL hFile
LOCAL tmp
LOCAL lDefSource
LOCAL lNoDefSource := .F.
SWITCH hb_FNameExt( cSourceDLL )
CASE ".a"
/* use these as-is, if specified */
RETURN win_implib_copy( hbmk, cSourceDLL, cTargetLib )
CASE ".def"
/* ugly hack to make it configurable to force skip COFF .lib processing and
skip to .def lookup, and if that fails, to .def generation */
cSourceDLL := hb_FNameExtSet( cSourceDLL, ".dll" )
lDefSource := .T.
EXIT
CASE ".nodef"
cSourceDLL := hb_FNameExtSet( cSourceDLL, ".dll" )
lNoDefSource := .T.
/* fall through */
OTHERWISE
lDefSource := .F.
IF ( nResult := win_implib_coff( hbmk, cSourceDLL, cTargetLib ) ) != _HBMK_IMPLIB_NOTFOUND
RETURN nResult
ENDIF
ENDSWITCH
IF ! lNoDefSource .AND. ;
( nResult := win_implib_def( hbmk, cCommand, cSourceDLL, cTargetLib, cFlags ) ) != _HBMK_IMPLIB_NOTFOUND
RETURN nResult
ENDIF
IF lDefSource
/* Try to generate a .def file from the .dll
This might help in case the supplied .lib doesn't work. */
IF win_defgen_command( hbmk, "gendef - {ID}", cSourceDLL, @cDef ) == _HBMK_IMPLIB_OK
IF ( hFile := hb_vfTempFile( @cSourceDef,,, ".def" ) ) != NIL
hb_vfWrite( hFile, cDef )
hb_vfClose( hFile )
IF ( nResult := win_implib_def( hbmk, cCommand, cSourceDef, cTargetLib, cFlags ) ) != _HBMK_IMPLIB_NOTFOUND
hb_vfErase( cSourceDef )
RETURN nResult
ENDIF
hb_vfErase( cSourceDef )
ELSE
_hbmk_OutErr( hbmk, I_( "Warning: Temporary .def could not be created." ) )
RETURN nResult
ENDIF
ENDIF
ELSEIF hb_vfExists( tmp := FN_CookLib( cSourceDLL, "lib", ".dll.a" ) ) /* use "lib<dllname>.dll.a" implibs, if there are any */
cSourceDLL := tmp
ENDIF
RETURN win_implib_copy( hbmk, cSourceDLL, cTargetLib )
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
MinGW - Como gerar LIB apartir de DLL?
Asimoes,
Você pode usar o BCC para gerar o .DEF e o MSVC para gerar a LIB e depois renomear apenas a extensão da mesma que são compatíveis com MINGW.
ex:
del version.lib
d:\devel\bcc55\bin\impdef.exe -a version.def version.dll
lib /MACHINE:X86 /def:version.def
Você pode usar o BCC para gerar o .DEF e o MSVC para gerar a LIB e depois renomear apenas a extensão da mesma que são compatíveis com MINGW.
ex:
del version.lib
d:\devel\bcc55\bin\impdef.exe -a version.def version.dll
lib /MACHINE:X86 /def:version.def
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
MinGW - Como gerar LIB apartir de DLL?
hbmk2 -longhelp
Só olhar o help que tem lá
Só olhar o help que tem lá
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
MinGW - Como gerar LIB apartir de DLL?
Ficou muito vago isso, lá tem trocentas mil informações, agora qual a que resolve o assunto do tópicohbmk2 -longhelp
Só olhar o help que tem lá
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
MinGW - Como gerar LIB apartir de DLL?
Pronto
Resolvido:
hbmk2 -hbimplib libeay32.dll -oteste -hblib
Vai sair libteste.a
Resolvido:
hbmk2 -hbimplib libeay32.dll -oteste -hblib
Vai sair libteste.a
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
MinGW - Como gerar LIB apartir de DLL?
Só pra lembrar:
Isso não é converter LIB, isso é parecido com aquilo de criar chamadas pra RMChart.DLL.
A grande diferença é que isso vai OBRIGAR que a DLL exista.
Sem DLL, o EXE nem sequer funciona... a menos que tenham alterado isso.
Talvez as alterações do Harbour tenham sido feitas nesse sentido:
Não é que não precisa mais de DLL, apenas não obriga que ela esteja instalada, e só vai dar erro se tentar usar.
(Pras DLLs externas do Harbour - LibCurl, OpenSSL, MySql, etc).
Isso não é converter LIB, isso é parecido com aquilo de criar chamadas pra RMChart.DLL.
A grande diferença é que isso vai OBRIGAR que a DLL exista.
Sem DLL, o EXE nem sequer funciona... a menos que tenham alterado isso.
Talvez as alterações do Harbour tenham sido feitas nesse sentido:
Não é que não precisa mais de DLL, apenas não obriga que ela esteja instalada, e só vai dar erro se tentar usar.
(Pras DLLs externas do Harbour - LibCurl, OpenSSL, MySql, etc).
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/


