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
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
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.
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
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
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
Exemplo de arquivo .HBP pra compilar.
# Nome do executável -o -oMENU #PROGRAMAS MENU.PRG CADASTRO.PRG EDITA.PRG RELATA.PRG
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
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
O caminho mais fácil para instalar a Mingw64 é pegar a última versão pronta (build) de winlibs.com:
MSVCRT runtime
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
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:
Não achei a libgcc.
Sincronizar repositórios:
Verificar instalação:
Também tentei:
Com a opção 3. Instalou um monte de coisa, mas não instalou nada... rs
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.
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.
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.
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.
Veja como fica o HMG com o VSCode:
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":
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.
Meus agradecimentos ao Frank pelas dicas.
Leia também no Blog do Major Anilto: https://www.linguagemclipper.com.br/content/recomendacao-para-os-novos-adeptos-do-clipper
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.