PROJETO HARBOUR

Foto de Anderson

PROJETO HARBOURPROJETO HARBOUR - Dicas de instalação e funcionamento.

Projeto Harbour é um compilador xBase compatível com a linguagem implementada pelo Clipper (a linguagem que é implementada pelo compilador CA-Clipper). O Harbour é um compilador multi-plataforma e é sabido que ele compila e executa com os mesmos fontes em MS-DOS, Windows (32 & 64), Windows CE, Pocket PC, OS / 2, o GNU / Linux e Mac OSX. 

Licenciamento
Harbour é um projeto livre e de código aberto. Ele pode ser usado para deenvolver aplicações de código aberto, softwares gratuitos ou até mesmo produtos comerciais.

Acesse o site do Projeto Harbour: https://harbour.github.io/ e saiba mais. No quadro amarelo Project Status ao clicar em "More downloads" você tem acesso à última versão estável 3.0.0, enquanto que, ao clicar em "Nightly binary (Win):  7Z  EXE" você terá a última versão 3.2. Não complique, baixe o instalador EXE!

Há também um fork de versão 3.4: https://github.com/vszakats/hb

DOWNLOAD DO PROJETO HARBOUR

Para fazer o download da linguagem Projeto Harbour acesse o site dele e clique em DOWNLOAD > BINÁRIOS (Versão estável)

Você pode observar RDDs e bibliotecas gráficas da linguagem de programação Projeto Harbour para download clicando em DOWNLOAD > Recursos adicionais.

O Harbour não precisa de instalação adicional de um compilador C como o Borland C++ porque já vem um com ele, é o MinGW. Observe que há um subdiretório chamado comp\mingw.

VARIÁVEIS DE AMBIENTE (FASE FINAL DA INSTALAÇÃO)

Após a instalação você deve configurar o ambiente de trabalho para compilar os seus programas.

Execute a seguinte linha no Prompt de comando do DOS ou crie um arquivo de lotes AMBI.BAT (por exemplo) para executar o comando abaixo.

SET PATH=C:\HB32\BIN; C:\hb32\comp\mingw\bin;%PATH%
SET HB_DIR=C:\HB32
SET HB_PATH=C:\HB32
SET INCLUDE=C:\HB32\INCLUDE;C:\HB32\comp\mingw\include
SET LIB=C:\HB32\LIB;C:\HB32\comp\mingw\lib

Você também pode configurar as variáveis de ambiente diretamente no Windows conforme as instruções abaixo.

Observe que cada caminho do PATH deve ser separado por ponto e vírgula (;).

Painel de Controle\Sistema e Segurança\Sistema

Configuração de variáveis de ambiente

 

TESTE: OLÁ MUNDO!

Vamos criar um arquivo pra testar a compilação. Você pode usar o VSCode, Notepad++ ou Notepad normal do Windows, mas não complique porque nosso programa de teste só tem uma linha! Faça assim:

No prompt do DOS digite o comando COPY CON OLA.PRG

Depois escreva:

? "OLA MUNDO"

Tecle CTRL+Z e tecle ENTER. Você gravou o arquivo OLA.PRG.

Agora rode o comando HBMK2 OLA

Foi gerado um arquivo OLA.EXE. Rode ele.

Teste 'OLA MUNDO!'

CONVERTENDO SCRIPT .BC (XHARBOUR) EM .HBP (HARBOUR)

hbmk2 -hbmake=<nome do arquivo>

Exemplo: hbmk2 -hbmake=<gelic.bc>

Outras opções de compatibilidade:

-hb10habilita modo de compatibilidade com 'Harbour 1.0.x'
-hb20  habilita modo de compatibilidade com 'Harbour 2.0.x'
-xhb     habilitar modo xHb
-hbc     ativa modo C puro
-rtlinkconverte arquivo de linkedição do rtlink para o hbmake
-blinkerconverte arquivo de linkedição do Blinker para o hbmake
-exospaceconverte arquivo de linkedição do Exospace para o hbmake
-hbmake=<file>  converte um projeto do hbmake em um arquivo .hbp
-xbp=<file>converte um projeto .xbp (xbuild) em um arquivo .hbp
-xhp=<file>converte um projeto .xhp (xMate) em um arquivo .hbp

Veja mais executando hbmk2 -help

Mais informações aqui: https://github.com/harbour/core/blob/master/utils/hbmk2/doc/hbmk2.pt_BR.md

OPÇÕES COMUNS DE COMPILAÇÃO DO HBMK2

Sintaxe:

  hbmk2 [opções] [<script[s]>] <fontes[s][.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot
|.hbl|@.clp|.d|.ch]>

Opções

  -o<outname>         nome do arquivo de saída
  -l<libname>         linkar com a biblioteca <libname>. <libname> deve estar
                      sem o "path", sem a extensão e sem o prefixo "lib" (a não
                      ser que faça a parte do nome). Não adicione bibliotecas
                      do núcleo Harbour, elas serão inseridas automaticamente
                      quando necessário. Se <libname> começar com um carácter
                      '-', a biblioteca será removida da lista de bibliotecas
                      na hora de linkar.
  -L<libpath>         "path" adicional para pesquisa por bibliotecas
  -i<p>|-incpath=<p>  "paths" adicionais para pesquisa de arquivos de cabeçalho
                      "headers"
  -static|-shared     linkar com biliotecas estáticas/compartilhadas
  -gt<name>           linkar com GT<name> controlador de terminal gráfico "GT
                      ", a linkagem pode ser repetida com mais GTs. O primeiro
                      será o GT padrão na execução do programa.
  -inc[-]             habilita/desabilitar o modo de compilação incremental
                      (padrão: desbilitado)
  -hbexe              criar um executável (padrão)
  -hblib              criar biblioteca estática
  -hbdyn              criar biblioteca dinâmica (não ligada com a Harbour VM)
  -hbdynvm            criar biblioteca dinâmica (ligada com a Harbour VM)
  -help               mais ajuda
 

CRIANDO UMA LIB EM HARBOUR

Exemplo de arquivo .hbp para criar uma LIB chamada libSIBRAHB3.a constituída pelos programas SIUVERAO.PRG e SUBSIBRA.PRG:

-hblib
-oSIBRAHB3
SIUVERAO.PRG
SUBSIBRA.PRG

Depois basta chamar o hbmk2 <nomedoarquivo.hbp>. Exemplo: hbmk2 sibrahb3.hbp

COMPILANDO UM SISTEMA NO HARBOUR

Exemplo de arquivo .HBP pra compilar.

# Nome do executável -o
-oMENU

#PROGRAMAS
MENU.PRG
CADASTRO.PRG
EDITA.PRG
RELATA.PRG

COMPILANDO UM SISTEMA NO HARBOUR COM BIBLIOTECA

Exemplo de arquivo .HBP pra compilar.

# Nome do executável -o
-oMENU

# Ícone do EXE
-icon=meuicone.ico

# COMPRESSÃO (reduz o tamanho do EXE)
-compr=max

#PROGRAMAS
MENU.PRG
CADASTRO.PRG
EDITA.PRG
RELATA.PRG

#BIBLIOTECA (libSIBRAHB32.a)
-lSIBRAHB32

COMPILANDO COM DEBUG NO HARBOUR

Exemplo de arquivo .HBP pra compilar com DEBUG:

#Nome do programa: TESTE.EXE
-oTESTE

# COMPILAÇÃO INCREMENTAL
-inc

# DEBUG / DEPURADOR
 -b
 -lhbdebug
 -D__DEBUG

#PROGRAMAS
TST1.PRG

Nesse caso coloquei uma "define" para uma compilação condicional no seu sistema. Por exemplo: 

#ifndef __DEBUG
 // Aqui pode colocar uma rotina para enviar o arquivo error.log para você
 // caso o erro apareça numa compilação "final" no seu cliente.
 // Pode enviar por email ou para um diretório FTP.
#endif

Downloads: 

Total votes: 0