Clipper On Line • Ver Tópico - Dica do dia: Compilar usando HBP/HBC/HBM/etc

Dica do dia: Compilar usando HBP/HBC/HBM/etc

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Dica do dia: Compilar usando HBP/HBC/HBM/etc

Mensagempor JoséQuintas » 20 Jan 2019 19:42

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Dica do dia: Compilar usando HBP/HBC/HBM/etc

Mensagempor JoséQuintas » 20 Jan 2019 19:49

#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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 14 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro