Isso é uma coisa básica.
Compilar nos tempos do Clipper:
Compila com Clipper
Linquedita com RTLink
Compilar nos tempos do Harbour:
Compila com Harbour - o que gera um fonte em C
Compila com C - o nome depende do compilador C
Linquedita - o nome depende do compilador C
Aqui, a diferença entre o Clipper é que passa por um intermediário em C, e pode ser usado compilador C: mingw, bcc, msvc, pelles C, etc.
pode ser bcc.exe, gcc.exe, ilink.exe, link.exe, c.exe, etc., com parâmetros quase infinitos em cada compilador C.
Pra descomplicar, o Viktor criou o HBMK2, que traduz tudo isso a um único jeito de compilar.
HBP:
O HBP nada mais é do que os parâmetros que seriam colocados na linha do prompt.
hbmk2 teste.prg
O HBP equivalente teria só a segunda parte: teste.prg
hbmk2 teste.prg teste2.prg GTWVG.hbc hbhpdf.hbc
O HBP equivalente teria todos esses parâmetros. teste.prg teste2.prg GTWVG.hbc hbhpdf.hbc
Para o HBP tanto faz se tudo está em uma única linha, ou uma "palavra" por linha.
HBC:
Este é direcionado mais pra LIB.
Por exemplo, a GTWVG acaba usando arquivos CH próprios e a lib HBWIN
Então foi criado um arquivo GTWVG.hbc, que já contém essas dependências, afinal, se usar GTWVG obrigatoriamente vai precisar do restante.
HBM:
Esse é pra exceções, ou situações muito específicas. Seria igual HBC, mas direcionado a todos os fontes de uma determinada pasta.
Supondo que tenha uma pasta com vários exemplos de uma determinada LIB, poderia pelo HBM definir a necessidade de todos os fontes da pasta de uma vez.
\Harbour\bin\hbmk.hbc
Este é interessante: permite definir um padrão de compilação para o Harbour, que será usado automaticamente em TODAS as compilações.
Como exemplo, se sempre compacta os EXEs, poderia colocar aqui, e TUDO que compilar já vai ser compactado, SEMPRE.
Onde usar cada um:
HBP: geralmente tem projetos, então vai usar um HBP para cada projeto
HBC: Este atende LIBs, ex. HWGUI, HMG Extended, gtwvg, etc.... o objetivo deste é indicar todo conjunto do que pertence a lib.
HBM: é só pra quando os anteriores não servirem, então pode ser que nunca use.
Vamos supor que vai usar GTWVG: ela tem arquivos CH, depende do uso da HBWIN ( lib Windows), e depende de indicar que é GUI na hora de linqueditar.
Vai lembrar de tudo isso? ... complicado... então... indicando GTWVG.hbc já vai estar fazendo tudo isso, porque o HBC indica tudo relacionado com a lib.
Tem as exceções... por exemplo na mesma GTWVG: não concordo que sejam adicionados os CH automaticamente. O problema é que isso pode gerar conflitos.
Aliás... se fosse certo assim, deveria ser adicionada a inkey.ch a todos os fontes, acho que é o ch mais usado de todos.
Tem essas exceções, mas no geral, HBP e HBC resolvem tudo.
Já que chegamos até aqui, outros arquivos:
RC
Esse é pra resources, recursos adicionados ao EXE, imagens por exemplo, e pode existir diferença no modo de preencher o conteúdo, conforme o compilador C.
RES
É outro formato pra resources, também varia conforme o compilador C
Manifest
Esse é direcionado ao Windows, indica configurações que devem ser obedecidas antes de executar o EXE.
Quando usar estes outros?
Se não precisou até agora, sinal de que não precisa, e vai saber quando precisar.
Importante:
Mesmo que não use, é bom saber para que serve, nunca se sabe se pode ter arquivos destes nas pastas, atrapalhando a compilação.
Dica do dia: Compilar usando HBP/HBC/HBM/etc
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Dica do dia: Compilar usando HBP/HBC/HBM/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/
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Dica do dia: Compilar usando HBP/HBC/HBM/etc
#include "inkey.ch"
Isto é mais velho que andar pra frente, mas é bom lembrar.
Isso indica pra adicionar o arquivo INKEY.CH ao fonte na hora de compilar.
Se não existir o arquivo INKEY.CH, vai dar erro de compilação, é lógico.
O HBMK2 já indica aonde estão os CH comuns, por isso na maioria dos casos nem percebemos que precisava.
No Clipper, isso era definido pela variável SET INCLUDE= que indicava o PATH dos arquivos CH.
Quais paths preciso configurar?
Compila... se der erro de faltar CH, aí sim vai indicar aonde está, ou o HBC correspondente, ou apagar o #include se estiver lá por engano.
Isto é mais velho que andar pra frente, mas é bom lembrar.
Isso indica pra adicionar o arquivo INKEY.CH ao fonte na hora de compilar.
Se não existir o arquivo INKEY.CH, vai dar erro de compilação, é lógico.
O HBMK2 já indica aonde estão os CH comuns, por isso na maioria dos casos nem percebemos que precisava.
No Clipper, isso era definido pela variável SET INCLUDE= que indicava o PATH dos arquivos CH.
Quais paths preciso configurar?
Compila... se der erro de faltar CH, aí sim vai indicar aonde está, ou o HBC correspondente, ou apagar o #include se estiver lá por engano.
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/