Página 1 de 1

Arquivos .HBC

Enviado: 30 Mar 2017 15:32
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.

Arquivos .HBC

Enviado: 30 Mar 2017 17:56
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.

Arquivos .HBC

Enviado: 30 Mar 2017 18:04
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.

Arquivos .HBC

Enviado: 18 Jun 2018 15:19
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

Arquivos .HBC

Enviado: 18 Jun 2018 17:06
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.

Arquivos .HBC

Enviado: 18 Jun 2018 17:48
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()

Arquivos .HBC

Enviado: 18 Jun 2018 20:09
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

Arquivos .HBC

Enviado: 18 Jun 2018 20:16
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?