Arquivos .HBC

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Arquivos .HBC

Mensagem por acelconsultoria »

Boa tarde,

Gostaria de pedir explicações mais simplificadas aos mais experientes daqui do fórum, sobre como esses arquivos funcionam.

Ao compilar um pequeno exemplo aqui, usando a GTWVW com Harbour 3.2, o HBMK2 já dá a dica pra incluir "\harbour\extras\gtwvw\gtwvw.hbc" na linha de compilação. No help do HBMK2 explica que o arquivo HBC é um arquivo "auxiliar", pois já contém os caminhos e as libs necessárias para compilar o projeto.

Ao abrir o arquivo gtwvw.HBC, me deparei com isto:

Código: Selecionar todos

{!allwin|!x86}skip=yes

incpaths=.
libpaths=lib/${hb_plat}/${hb_comp}

gt=${hb_name}
gui=yes
De uma forma simples, alguém poderia me dizer como isso funciona ? Nas linhas de comando desse arquivo hbc, não consegui identificar como é que ele "chama" as libs necessárias para a compilação.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivos .HBC

Mensagem por JoséQuintas »

Não costumo nem olhar o conteúdo, e alguns não entendo bem, apenas uso.

Mas dá pra ter uma idéia.
{!allwin|!x86}skip=yes
se não for plataforma Windows, pula, não serve pra "não Windows".
incpaths=.
include path, o path pra arquivos CH, que no HBP é indicado por -i
libpaths=lib/${hb_plat}/${hb_comp}
O path pra lib. está indicando LIB\plataforma\compilador, que pode ser lib\win\bcc, lib\win\mingw, lib\win\msvc, etc. No HBP é indicado por -L
gt=${hb_name}
a biblioteca visual, vai assumir o nome do HBC, que é GTWVW
gui=yes
Indica que será gerado um EXE GUI, e não um EXE console.

Até que esse dá pra entender.
Tem uns complicados.... rs

Chamou a atenção o ${hb_name}, ${hb_plat} e ${hb_comp}
Talvez aproveite pra usar na ALLGUI e eliminar configuração adicional.
Acaba assumindo o default, melhor do que ficar criando variáveis a mais.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivos .HBC

Mensagem por JoséQuintas »

Ah sim....
os HBCs conhecidos, o HBMK2 já busca automático das pastas que ele conhece.

Caso queira criar um HBC pra fivewin, acho que teria que salvá-lo na pasta BIN do Harbour, precisa confirmar isso.

Está aí uma forma do que queria fazer.

Restaria apenas PATH.

Lembrando que pra chamar o HBMK2, ELE PRÓPRIO precisa estar no PATH.
Então de nada adiantaria ele reconhecer PATHs automaticamente, se ele próprio não estiver no PATH.
E se ele estiver no PATH, ele faz parte do Harbour, e o Harbour já fica no PATH.

Conclusão: Use o que usar, a primeira coisa é colocar o Harbour no PATH.
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/
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Arquivos .HBC

Mensagem por lugab »

Pessoal, bom dia, estou com o mesmo problema do Maickon

Ao tentar compilar um VLIB.PRG ( que pesquei aqui no fórum) com o HB32 recebo essa mensagem:
hbmk2: Dica: Instale o pacote gtwvw e adicione as opções 'gtwvw.hbc' faltando
nas funções: wvw_NoClose()
Como resolver isso ?

Na pasta \hb32\extras\gtwvw tem o seguinte gtwvw.hbc

Código: Selecionar todos

{!allwin|!x86}skip=yes
incpaths=.
libpaths=lib/${hb_plat}/${hb_comp}
gt=${hb_name}
gui=yes
Meu COMPILA.HBP está assim:

Código: Selecionar todos

-o32est
-gui
-compr=yes
-m
-strip
-jobs=1
gtwvw.hbc
hbwin.hbc
xhb.hbc
vlib.prg
VersXml.prg
pdfclass.prg
hbhpdf.hbc
FunPDF3.PRG
PreNorM2.prg
prenor02.prg
lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivos .HBC

Mensagem por JoséQuintas »

Um detalhe é que no 3.2 é opcional, mas no 3.4 faz parte de contribs.
A pasta contribs entra disponível automático, pelo menos pra pesquisa.

Como no 3.2 a gtwvw fica em extras, talvez precise algo mais.
uma forma simples é acrescentar em \Harbour\bin o arquivo hbmk.hbc e nele indicar a pasta da gtwvw que contém o hbc.

O interessante do HBC é que a configuração é relativa a ele, e não à pasta atual.
Se no HBC estiver include, vai ser a include dentro da pasta aonde está o HBC.
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/
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Arquivos .HBC

Mensagem por lugab »

Ih, professor, fiz algo errado e sua sugestão não funcionou:
hbmk2: Dica: Instale o pacote gtwvw e adicione as opções 'gtwvw.hbc' faltando nas funções: wvw_NoClose()
Anexos
Gtwvw.jpg
lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivos .HBC

Mensagem por JoséQuintas »

OK, plano B, mova a pasta GTWVW pra dentro de contribs, assim fica igual Harbour 3.4

\hb32\contrib\gtwvw

Vai ter que compilar, e mover a lib pra pasta correspondente ao seu compilador C.


Exemplos:

\hb32\lib\win\bcc\gtwvw.lib

\hb32\lib\win\mingw\libgtwvw.a
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivos .HBC

Mensagem por JoséQuintas »

Talvez tenha faltado apenas as LIBs nas pastas do Harbour, mesmo no outro caso.
Ou indicar no HBC qual é a lib e onde está. (no outro caso, mantendo pasta original de extras).

Mas estranho: só deu falta de uma única função?
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/
Responder