Migrando para Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

progitar
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 29 Mar 2011 09:10
Localização: Santo Antonio de Padua/RJ

Re: Migrando para Harbour

Mensagem por progitar »

Tenho um sistema em Clipper 5.01bem simples, e gostaria de migrar p/poder rodar no windows7 64 bits.
Quais os primeiros passos para migrar para o xHarbour (vou continuar no modo texto)?
Onde conseguir os compiladores, libs, bem como, alguma literatura para me familiarizar?

Obrigado!

Leandro
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Migrando para Harbour

Mensagem por Pablo César »

Leandro - progitar escreveu:para migrar para o xHarbour
Tem que ser em xHarbour ? Não pode ser em Harbour ?
Leandro - progitar escreveu:(vou continuar no modo texto)
Eu tive bons resultados e com muita rapidez com a IDE da HMG 3.0.35, mas este utiliza Harbour + MiniGUi. Se interessar, dê uma lida no arquivo DOC em anexo deste tópico: https://pctoledo.org/forum/viewto ... 43&t=11543

Ahhh ja ia esquecendo... "Seja bem vindo ao fórum !"
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
wesley assis
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 08 Abr 2010 16:16
Localização: Belo Horizonte - MG

Re: Migrando para Harbour

Mensagem por wesley assis »

Prezados, Boa tarde!

Baixei o Harbour neste link http://sourceforge.net/projects/harbour ... z/download, Preciso de informações, tutorial sobre como compilar e linkar, pois no clipper bastava CLIPPER NOME_DO _PROGRAMA e depois linka-lo. Etc. Quero converter aos poucos programas em clipper para Harbour.

Obrigado
Wesley Assis
Magnoman
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 09 Mai 2010 11:35
Localização: Maceió
Contato:

Re: Migrando para Harbour

Mensagem por Magnoman »

Eu desenvolvi um passo-a-passo depois que também quebrei a cabeça tentando, está apresentado neste link:

http://caclipperwebsite.com/todos/node/xharbour :)Pos
Quem busca aconselhamento encontra sabedoria.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Migrando para Harbour

Mensagem por Toledo »

Para começar você terá que instalar o Harbour e o Compilador BCC, seja abaixo como fazer isto:

Copie a versão 2.0.0. do Harbour no link abaixo:

http://sourceforge.net/projects/harbour ... e/download

Para instalar o Harbour faça o seguinte:

1 - Executar o arquivo harbour-2.0.0-win.exe que você copiou no link acima, clique no botão "Next", depois em "I Agree", "Next" e finalmente em "Install"

2 - Você tem que instalar também o Borland BCC 5.5, para isto copie e execute o arquivo freecommandLinetools.exe que está no link abaixo:

http://altd.embarcadero.com/download/bc ... etools.exe

Na instalação do BCC 5.5, escolha os botões "Avançar" e depois "Concluir".

3 - Agora vamos configurar o Borland BCC 5.5:

a) Vamos criar o arquivo de configuração dos caminhos para o diretório /LIB e /INCLUDE do BCC e do harbour. Para isso, abra o Bloco de Notas e digite o seguinte:

-Ic:\Borland\bcc55\include;c:\hb20\include
-Lc:\Borland\bcc55\lib;c:\hb20\lib\win\bcc

Agora salve o arquivo no diretório C:\Borland\BCC55\BIN, com o nome de bcc32.cfg.

b) Agora vamos configurar o ILink32 do BCC, então usando o Bloco de Notas novamente, abra um arquivo novo e digite:

-Lc:\Borland\bcc55\lib;c:\hb20\lib\win\bcc

Agora salve-o no diretório C:\Borland\BCC55\BIN com o nome de ilink32.cfg.

4 - Para finalizar, temos que configurar o arquivo AUTOEXEC.BAT, informando o path do BCC e do Harbour.
Atenção: para Windows XP e Vista, pule para a opção "Configuração no Windows XP"

Configurando o AUTOEXEC.BAT:
Editar o arquivo AUTOEXEC.BAT, que está em C:\, e acrescentar os diretórios do BCC e do Harbour no path. Para isso acrescente as seguintes linhas no final do autoexec.bat.

PATH=%PATH%;C:\Borland\BCC55\BIN;C:\hb20\BIN

Depois salve e feche o arquivo.

Configuração no Windows XP:
Para o Windows XP a configuração acima é diferente, conforme segue abaixo:

a) Na área de trabalho do Windows, posicione o mouse sobre o Meu Computador e clique o botão direito e escolha a opção Propriedades
b) Clique na aba Avançado
c) Agora selecione no campo "Variáveis do sistema" uma variável chamada "path" e clique no botão Editar e acrescente no final do campo "Valor da variável" o seguinte comando:

;C:\Borland\BCC55\BIN;C:\hb20\BIN;

Obs.: note que existe um ; no início e no final do comando acima

d) Clique no botão Ok
e) E para finalizar, clique no botâo Ok novamente e feche a tela de propriedades.

Pronto, o BCC e o Harbour já estão instalados e configurados.

O Harbour é um compilador identico ao Clipper, então para usar ele você tem que digitar os comandos no Prompt do DOS.

No desenvolvimento de um PRG para compilar com o Harbour temos que observar as seguintes regras:

1 - O programa principal, que vai ter a tela iniciar do seu programa, tem que iniciar com:

FUNCTION MAIN()
..... //aqui vai os comandos do programa inicial
.....
RETURN NIL

A função MAIN() vai indicar para o Harbour que este PRG é o inicial.

2 - Tirando o PRG principal acima, todos os outros PRG do seu programa tem que iniciar com uma FUNCTION ou PROCEDURE.
No Clipper, quando a gente desenvolvia um programa dividido em vários PRGs, nos PRGs secundários você podia já começar colocando os comandos sem a necessidade de definir uma FUNCTION ou PROCEDURE. Com o Harbour isto não pode acontecer, os PRGs secundários é obrigatório iniciar com uma FUNCTION ou PROCEDURE.

3 - Como no Harbour todos os PRGs secundários iniciam como uma FUNCTION ou PROCEDURE, toda chamada destes PRGs não pode mais ser usado o comando "DO", por exemplo: DO CADCLI ou DO CADCLI WITH 10,20, você deve trocar para simplesmente CADCLI() ou CADCLI(10,20).

4 - Para compilar com o Harbour um programa que tenha vários PRGs, devemos criar um arquivo HBP com o nome de todos os PRGs. Por exemplo: se o seu programa tem os seguintes arquivos: MENU.PRG, CLIENTES.PRG, PRODUTOS.PRG, LANCA.PRG, RELATO.PRG, ROTINAS.PRG, você deve criar um arquivo que tenha a extensão HBP (por exemplo: PROJETO.HBP) e dentro dele relacionar os PRGs acima. Veja um exemplo:

-inc
-osistema
menu.prg
clientes.prg
produtos.prg
lanca.prg
relato.prg
rotinas.prg

O comando -inc faz com que o Harbour compile apenas os PRGs que foram modificados desde a última compilação.
Onde está "-osistema" você deve informar o nome que o seu EXE vai ter. Então se você quer que o seu EXE tenha por exemplo o nome de SCE.EXE, troque -osistema por -osce.

Bom, criado o arquivo HBP, para compilar e linkar basta digitar:

HBMK2 PROJETO

No comando acima a expressão "PROJETO" é o nome do arquivo HBP que você criou.

Bom, no caso de você querer compilar os seus programas desenvolvidos em Clipper com o Harbour, você primeiro tem que verificar se neste seu programa você não está usando alguma LIB ou OBJ externo, que não seja ORIGINAL do Clipper. Pois o Harbour não aceita LIBs ou OBJs externos.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Walterley
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 28 Jun 2015 12:09
Localização: São José/SC

Migrando para Harbour

Mensagem por Walterley »

Caro amigo Toledo...

Fiz tudo o que você indicou no post anterior... Reinstalei o Borland e o Harbour, revisei os arquivos de configuração e criei os paths corretos.
Alguma coisa melhorou, pois já consigo ir até muito próximo do final da compilação, mas aparece o seguinte erro

(suprimi algumas linhas para não ser muito repetitivo, afinal, são 156 rotinas diferentes.)

(...) hbmk/win/mingw/OFI_ATR5.o .hbmk/win/mingw/OFI_ATR6
.o .hbmk/win/mingw/OFI_MENU.o .hbmk/win/mingw/OFI_PROC.o .hbmk/win/mingw/OFI_FUN
C.o .hbmk/win/mingw/OFI_FUN2.o .hbmk/win/mingw/OFI_OUTR.o .hbmk/win/mingw/_hbmka
ut_GASP40HB.o -mconsole -Wl,--start-group -lxhb -lhbwin -lhbct -lhbziparc -lh
bmzip -lminizip -lhbnf -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -l
gtcgi -lgtpca -lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrd
dntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbp
p -lhbcommon -lhbmainstd -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -liphlp
api -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -
lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib -Wl,--end-group
-oOFICINA.exe -LC:/hb32/lib/win/mingw.hbmk/win/mingw/OFICINA.o:OFICINA.c:(.data+0x128):
undefined reference to `HB_FUN_ALT'
collect2: ld returned 1 exit status
hbmk2[OFICINA]: Erro: Executando linkeditor. 1


c:\Harbour>

Não encontrei em nenhum PRG a função ou a chamada para esta função ' HB_FUN_ALT'. Como poderei encontrar este erro?
Já uso o -trace na compilação, existe algum outro truque que eu possa debugar no momento da compilação?

Antecipadamente agradeço o auxilio de qualquer colega deste forum.

Walterley Neves
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Migrando para Harbour

Mensagem por Toledo »

Walterley escreveu:Não encontrei em nenhum PRG a função ou a chamada para esta função ' HB_FUN_ALT'
Amigo, na verdade o nome da função é apenas ALT(), pois tem que desconsiderar o HB_FUN_, que é um prefixo padrão usado pelo Harbour nos nomes das funções.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Walterley
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 28 Jun 2015 12:09
Localização: São José/SC

Migrando para Harbour

Mensagem por Walterley »

Caro amigo Toledo.

Obrigado pela resposta e pelo esclarecimento. Eu iria continuar o resto da vida procurando o HB_FUN_ALT...

Agora estou procurando apenas uma função no sistema, onde eu utilizei uma funcão, disparada pela tecla ALT-F7 para calcular o digito verificador do código de barra de produtos, quando o usuário está cadastrando produtos novos em estoque. Vou mudar esta função da biblioteca para o ofi_func.prg, onde estão todas as funções pequenas do sistema.

Vou aproveitar também para compilar e linkar a libgas.prg e com isto evitar problemas futuros...

Obrigado por todas as informações que você veiculou nos fóruns... Aprendi muito lendo-as.

Walterley
:{ :{ :-Y
arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Migrando para Harbour

Mensagem por arcanjoebc »

Para plataforma Windows 10 Pro, 64 bits, de onde devo baixar o harbour e como configurar o compilador? As dicas já apresentadas servem? Ainda não as testei, baixei um tal de harbour-nightly-win.exe, da página do sourceforge.net, mas não consigo gerar o exe, apenas no Ubuntu 16.04 64 bits comsegui gerar o executável ... alguém pode me ajudar?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Migrando para Harbour

Mensagem por JoséQuintas »

Não entendi a indicação anterior do Harbour 2.0, pelo menos não percebi se algum post direciona a ele.

No Windows 10 deveria ser só isso, e configurar o path do Harbour e do compilador C:
PATH=%PATH%;\harbour\bin;\harbour\mingw\bin

Se já compila no Ubuntu, é provável que já tenha HBP e tudo mais pronto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Migrando para Harbour

Mensagem por arcanjoebc »

Desculpe minha ignorância, mas em que batch da pasta c:\hb32 eu coloco essa configuração que mencionastes, amigo JoséQuintas? Talvez o harbour já faça a linkagem, mas eu não estou sabendo é que parametros passar pelo modo texto do Windows 10, tem algum comando específico para compilar e linkar os prg's do meu pequeno exemplo de cadastro de clientes? Aguardo futura resposta.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Migrando para Harbour

Mensagem por JoséQuintas »

1. Pra buscar automaticamente no Harbour, precisa estar no path o Harbour e o compilador C
\hb32\bin;\hb32\comp\mingw\bin

2. Coloque a lista de PRGs em um arquivo com extensão HBP, o principal como primeiro

----principal.hbp
principal.prg
arquivo2.prg
-m

3. Execute hbmk2 com o nome desse arquivo hbp

hbmk2 principal.hbp

Acredito que no Ubuntu seja igual.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Migrando para Harbour

Mensagem por arcanjoebc »

Não, no Ubuntu, eu utilizo o seguinte:

Código: Selecionar todos

$ hbmk2 -lgpm -static cli.prg
Então gera o executável ... pensei que fosse algo parecido no Windows, mas obrigado pela dica, vou testar e posto aqui o resultado, ok! :D
arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Migrando para Harbour

Mensagem por arcanjoebc »

Fiz o teste, mas apresentou erros. Então, mostro abaixo um screen-shot com os erros apresentados no Windows 10 Pro 64 bits, caro amigo JoséQuintas:
Erro apresentado
Erro apresentado


Desde já, sou-lhe grato por qualquer solução para o problema em questão.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Migrando para Harbour

Mensagem por JoséQuintas »

Provavelmente no Ubuntu apenas indicou o programa principal e deixou que o compilador pegasse o restante a partir do principal.

Opção 1:
Compilar SEM o -m, pra puxar automaticamente os outros fontes da pasta (se estiverem indicados no principal com SET PROCEDURE por exemplo.

Opção 2:
Indicar os fontes aonde se encontram as funções Reindexa() e Struct2()
No HBP vão TODOS os fontes do projeto, não apenas alguns.
Ou coloca todos com -m, ou sem o -m, e deixa que o compilador tente procurar atomaticamente.

Tente igual ao Ubuntu, mas acrescente isto, pra refazer toda compilação:

Código: Selecionar todos

hbmk2 cli.prg -rebuild
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder