To apanhando um bocado, pra usar o HBMK2, ja li varios tutoriais de como usa-lo, mais a maioria do prgs que compilo, da erro ou não executa.
hbmk2 é pra ajudar a compilar, mas ele não faz mágica.
Tanto faz linha de comando, ou usando um HBP, os comandos são os mesmos, a diferença em HBP é separar um comando por linha.
Se forem exemplos criados usando a compilação -w3 -es2, então facilita se compilar igual, pra identificar se falta alguma coisa.
É que se não forem criados com isso, vai acusar muito mais erros, e complica... rs
basicamente é apenas colocar a lista de fontes.
Se os fontes usam arquivo .CH, ou biblioteca adicional, precisa indicar isso também no HBP. (ou linha de comando).
O hbmk2 só busca automático a parte básica
esse exemplo com console:
hbmk2 test
esse exempo com gtwvg:
hbmk2 test gtwvg.hbc
supondo que pegue um exemplo que use funções da gtwvg, ou funções da hbwin, etc.
hbmk2 test hbwin.hbc gtwvg.hbc
e se for usando arquivo hbp:
#arquivo.hbp
test
hbwin.hbc
gtwvg.hbc
hbmk2 arquivo.hbp
Lembre-se do Clipper.
um fonte do clipper:
clipper teste
rtlink fi teste
se no fonte usa diferente do padrão, por exemplo uma biblioteca que não é do Clipper:
clipper teste
rtlink fi teste lib outralib
se as libs do clipper não estão na pasta atual, ou indica SET LIB=c:\pasta ou:
clipper teste
rtlink fi teste lib c:\clipper\clipper, c:\clipper\dbfntx, c:\clipper\extend, c:\tools\outralib
Não é o hbmk2 que é complicado, é que acostumamos com tudo automático, e esquecemos do básico.
SET PATH, SET LIB, SET OBJ
Com Clipper é muito mais complicado do que com Harbour/hbmk2.
Mas tem um porém ai:
Também estão chamando de Harbour TUDO, e não é tudo.
hwgui, minigui, qt, etc. são bibliotecas adicionais, que necessitam configuracões adicionais.
hbide é um ambiente de compilação que também exige configurações especificas.
E dependendo de onde obter o Harbour, ele pode ou não vir com o compilador C junto.
Se o compilador C estiver no lugar adequado, e configurado no PATH, o hbmk2 pega automático.
Não queira testar tudo que é exemplo do jeito padrão, porque depende se o exemplo usa alguma lib adicional, pra indicar algo mais no HBP/linha de comando.