PROJETO HARBOUR

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.

Você pode pegar a minha instalação do HB32 aqui. Descompacte em C:\ e chame o AMB-HB32.BAT

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:

-hb10 habilita 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
-rtlink converte arquivo de linkedição do rtlink para o hbmake
-blinker converte arquivo de linkedição do Blinker para o hbmake
-exospace converte 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

Como instalar o Mingw64?

O caminho mais fácil para instalar a Mingw64 é pegar a última versão pronta (build) de winlibs.com:

MSVCRT runtime

  • GCC 14.2.0 (with POSIX threads) + LLVM/Clang/LLD/LLDB 19.1.1 + MinGW-w64 12.0.0 (MSVCRT) - release 2   (LATEST)

Só descompactar e copiar para C:\MINGW64 

Não esqueça de atualizar as variáveis de ambiente PATH; INCLUDE e LIB!

SET PATH=C:\HB32\BIN;C:\mingw64\bin;C:\WINDOWS
SET HB_DIR=C:\HB32
SET HB_PATH=C:\HB32
SET HB_COMPILER=mingw

SET INCLUDE=C:\HB32\INCLUDE;C:\mingw64\include
SET LIB=C:\HB32\LIB;C:\mingw64\lib

Pronto! Já tens um compilador C de 64bits para usar com o Harbour!


Podemos também baixar de Sourceforge


Podemos também usar o MSYS2 que instala e mantém uma versão pré-compilada do MinGW-w64 para você. Basta instalar e usar o gerenciador de pacotes pacman para baixar a versão certa.

Instale MSYS2 em C:\MSYS64

Link: https://www.msys2.org/

Faça o download do instalador:

Download the installer: msys2-x86_64-20240727.exe

Observe que foi criada a pasta mingw64, mas não tem nada dentro dela.

Abra o terminal MSYS2 MinGW 64-bit: c:\msys64\mingw64.exe

Todavia, antes de instalar qualquer coisa, é importante atualizar os pacotes do MSYS2. No terminal, execute o seguinte comando: pacman -Syu

Depois digite o seguinte comando para instalar a mingw64: pacman -S mingw-w64-x86_64-gcc

Agora pode olhar que está tudo lá!

Agora você já tem um compilador 64 bits para usar com o Harbour.

Lembre de configurar adequadamente as variáveis de ambiente.

Caso não haja nenhuma DLL na pasta bin você vai precisar instalar os pacotes 

  • pacman -S mingw-w64-x86_64-libwinpthread (libwinpthread-1.dll)
  • pacman -S mingw-w64-x86_64-libgcc (libgcc_s_seh-1.dll)

No meu teste a versão MSVCRT não instalou as DLLs necessárias e a tentativa de instalar elas manualmente não deu certo, enquanto que, a versão UCRT instalou todas as DLLs. Ficou faltando a libgcc_s_seh-1.dll.

Para verificar todos os pacotes disponíveis:

  • pacman -Ss mingw-w64-x86_64

Não achei a libgcc.

Sincronizar repositórios:

  • pacman -Syyu

Verificar instalação:

  • pacman -Qs gcc
  • ldd /mingw64/bin/gcc.exe

Também tentei:

  • pacman --sync git base-devel msys2-devel mingw-w64-{i686,x86_64}-toolchain

Com a opção 3. Instalou um monte de coisa, mas não instalou nada... rs

 

Diferença entre mingw-w64-x86_64-gcc e mingw-w64-ucrt-x86_64-gcc:

mingw-w64-x86_64-gcc: Usa o runtime MSVCRT (Microsoft Visual C Runtime), que é a versão mais comum e compatível com versões mais antigas do Windows.

mingw-w64-ucrt-x86_64-gcc: Usa o Universal C Runtime (UCRT), que é uma versão mais recente e melhorada do runtime C, introduzido no Windows 10. Ele oferece melhorias de compatibilidade com padrões modernos e é recomendado para sistemas mais recentes.

 

Quando usar o UCRT:

Se você está desenvolvendo para versões mais modernas do Windows (Windows 10 e superiores), o UCRT é uma boa escolha, pois é mais atual e tem suporte oficial pela Microsoft.

No entanto, se você precisa de compatibilidade com versões mais antigas do Windows (como Windows 7, 8 ou sistemas legados), a versão MSVCRT seria mais adequada.

 

Compatibilidade com Harbour:

O Harbour deve funcionar sem problemas com ambos os compiladores, desde que você esteja usando uma versão recente do Harbour e esteja compilando para um ambiente Windows moderno. Se seu público-alvo usa Windows 10 ou superior, o ucrt pode ser a melhor opção por causa das melhorias no runtime.


Além da Mingw que vem do GCC talvez você precise também do OpenSSL e do Curl.

HMG: Projeto Harbour para Windows

HMG: Sistema de Desenvolvimento xBase para Windows

HMG é a união desses principais componentes: 

    - HMG Library and preprocessor directives
    - HMG IDE
    - MingW Compiler
    - Harbour Compiler

Tudo junto, estas ferramentas compõem um completo sistema de desenvolvimento xBase gratuito para Windows, combinando o tradicional xBase com uma GUI extremamente fácil de usar.

Links para download:

Assista ao vídeo explicativo ao lado de como instalar o HMG no seu computador! Abaixo dele tem outro vídeo explicando como desenvolver um sistema com ele. Passe o mouse no canto inferior direito do vídeo e clique no "[ ]" para assistir em tela cheia.

Depois você pode instalar o VSCode (Visual Studio Code). Nele você programa, é um editor de textos com função HighLight que colore o código para ficar mais legível, e na IDE do HMG você vê como ficou o executável. Depois de instalar o VSCode, clique no menu File > Preferences > Extensions aí busque a palavra "harbour". Eu instalei a extensão "Harbour and xHarbour".

Você também pode usar o Notepad++ que também tem a função highlight, mas você vai ter que importar o arquivo da linguagem Harbour que disponibilizo abaixo pra download. Acontece que lá na linguagem definida pelo usuário os botões importar e exportar estão trocados, escolha exportar para importar.

É necessário que você configure o HMG para adotar o VSCode como editor padrão. Abra a IDE do HMG, clique no menu Ferramentas > Preferências e daí vai aparecer uma janela para você apontar o caminho para o Editor de Módulos, aponte para o VSCode.

set-vscode.png

Veja como fica o HMG com o VSCode:

HMG: Sistema de Desenvolvimento xBase para Windows

Para começar a trabalhar com o HMG você precisa criar um novo projeto.

Vá no menu Arquivo > Novo projeto ou clique no botao "Novo": BrwNewProject-full.jpg

Crie uma pasta (diretório) para o seu projeto e dê um nome.

Pronto! Vamos programar!

Aprenda com o manual do próprio HMG (Ajuda > HMG Reference), veja os exemplos também.

  • C:\hmg.3.4.3\SAMPLES (pasta contendo diversos exemplos)
  • C:/hmg.3.4.3/doc/data/index.htm (Guia de Referência do HMG)

Meus agradecimentos ao Frank pelas dicas.

Leia também no Blog do Major Aniltohttps://www.linguagemclipper.com.br/content/recomendacao-para-os-novos-adeptos-do-clipper


Compilando a nova versão HMG 3.5

Ao baixar o arquivo, escolha a pasta onde vai instalar. Por exemplo: C:\HMG35.

Chame BuildAllLib32.bat. Os BATs do HMG usam "SET HMGPATH=%~dp0" que apontam automaticamente para o diretório atual sem precisar configurar nada.

Vai pedir para escolher compilar com o padrão ANSI ou UNICODE. A vida toda trabalhamos com ANSI... escolha 1.

Vai sair compilando tudo a partir dos fontes.

Depois crie um bat ou defina essas variáveis de ambiente no Windows:

SET HMGPATH=C:\HMG35
SET PATH=%HMGPATH%\harbour\bin;%HMGPATH%\mingw\bin;%PATH%
SET LIB=%HMGPATH%\harbour\LIB;%HMGPATH%\mingw\LIB
SET INCLUDE=%HMGPATH%\harbour\INCLUDE;%HMGPATH%\mingw\INCLUDE

Vá na pasta I:\HMG35\IDE_ANSI e edite o arquivo language_ANS.ini para mudar a língua para o Português, coloque:

Portuguese.ANS

Salve o arquivo e chame o IDE_ANSI.EXE.