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: 8029
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 2 vezes
- Curtiram: 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: 7135
- 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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/


