Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

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

Moderador: Moderadores

Erik Marcondes
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 19 Jul 2021 15:26
Localização: São Paulo / SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por Erik Marcondes »

Bom Dia a todos do fórum!

Gostaria de saber se vocês podem me ajudar com o seguinte: constumava utilizar Windows 7 x86 e, para compilar meus programas, Harbour 3.0.0 com Mingw. Funcionava muito bem.

Daí meu computador pifou e resolvi comprar um notebook, que veio com Windows 10 x64. Instalei o Harbour 3.0.0 normalmente. Na hora de compilar... deu zebra!

Pesquisando um pouco consegui alterar meu script de compilação para o que segue:

Código: Selecionar todos

@echo off
set programa=DRACMA
MD C:\TEMP
set temp=C:\TEMP
set path=C:\hb30\bin;C:\hb30\comp\mingw64\bin;%path%
set HB_COMPILER=mingw64
set caminho=%~dp0
del %programa%.exe
COLOR 0f
CLS
C:\hb30\bin\hbmk2-x64 %caminho%\%programa%.hbp
pause
%programa%.exe
exit
Esse script até cria os arquivos em ".c". Só que aparece a mensagem "Erro: executando compilador C/C++. -1".

E tenho os seguintes arquivos na minha pastas "C:\Harbour\Bin":
hbmk2-x64.exe
harbour-64.exe
e outros...

O que faço?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por JoséQuintas »

A mensagem é de que não acha o compilador C.
Ele está no PATH ??
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por Itamar M. Lins Jr. »

Olá!
Pq não usa o convencional ?
Use o Hb32.
Aqui no forum tem como instalar, explicação de como compilar 32 e 64 ao mesmo tempo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por JoséQuintas »

Talvez seja este o erro... talvez não...

Código: Selecionar todos

	set HB_COMPILER=mingw64
Com certeza não compilava 64 bits no W7 32 bits.
Altere pra mingw
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/
Erik Marcondes
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 19 Jul 2021 15:26
Localização: São Paulo / SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por Erik Marcondes »

O fato é que no Windows 7 x86 ele compilava com o comando "set HB_COMPILER=mingw". Li em algum lugar que tinha que colocar o "64" na frente para windows 64 bits, ou colocar algo do tipo "-comp=64" (algo do gênero).

Não quero me desfazer do hb30. Criamos uma "relação afetiva" depois de alguns anos de luta juntos.

Mas Ok. José Quintas! Vou tentar essa sugestão.
Erik Marcondes
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 19 Jul 2021 15:26
Localização: São Paulo / SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por Erik Marcondes »

Uma solução temporária que achei foi instalar uma máquina virtual (Oracle Virtual Machine) rodando Windows 7 x86. Daí uso o script de compilação que funcionava normalmente antes:

Código: Selecionar todos

@echo off
set programa=DRACMA
MD C:\TEMP
set temp=C:\TEMP
set path=C:\hb30\bin;C:\hb30\comp\mingw\bin;%path%
set HB_COMPILER=mingw
set caminho=%~dp0
del %programa%.exe
COLOR 0f
CLS
echo %caminho%
pause
C:\hb30\bin\hbmk2 %caminho%\%programa%.hbp
pause
%programa%.exe
exit
O problema é que, se eu for alterar o código fonte no computador de alguém que usa meu sistema e essa pessoa tiver qualquer windoss x64.... Não posso instalar uma máquina virtual no computador dos outros! :))
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por JoséQuintas »

Erik Marcondes escreveu:Uma solução temporária que achei foi instalar uma máquina virtual
Não complique, está confundindo tudo.


mingw = gera 32 bits, NÃO IMPORTA se a máquina é 32 ou 64 bits, vai compilar e executar nas duas


mingw64 = gera 64 bits, OBRIGATORIAMENTE, só vai funcionar em máquina 64 bits.
Programa 64 bits só vai compilar se existirem as LIBs 64 bits e compilador 64 bits, e é isso justamente que não tem, e é isso justamente que nunca usou e não interessa.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por JoséQuintas »

Complemento:

Pode parecer que tá funcionando 64 bits, mas não está.

A compilação é em duas etapas: transforma PRG pra C, depois compila o fonte C, logicamente usando o compilador C necessário.

mingw: transforma PRG pra C, depois usa o compilador mingw 32 bits pra compilar, e as LIBs mingw 32 bits pra linqueditar
mingw64: transforma PRG pra C, depois usa o compilador mingw 64 bits pra compilar, e as LIBs mingw 64 bits pra linqueditar

No Harbour 3.0 só vém 32 bits, não adianta tentar compilar como mingw64, que só vai transformar de PRG pra C, mas não vai conseguir fazer o resto.

É só isto:
HB_COMPILER=mingw

Windows 64 bits roda programas 32 bits normalmente, não precisa fazer diferente.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por JoséQuintas »

Traduzindo tudo:

Faça do jeito que sempre fez.

Não sei porque, inventou de querer fazer diferente, e quer ter o mesmo resultado fazendo diferente.
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por Itamar M. Lins Jr. »

Olá!
O fato que nem sei se o hb30 tem os recursos do 3.2
Então podemos dizer que a diferença é muito grande.

Relação afetiva é com gente ou algum bicho não com software. Com software sou sempre inconstante, já pensou continuar usando Dbase II ou Clipper ?

Instalar o harbour 3.2 é muito simples. Tem aqui no forum os procedimentos.
Basicamente 3 passos.
Pegar o msys2, baixar os fontes do harbour via git e compilar ele para 32 ou 64 ou os dois!

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:O fato que nem sei se o hb30 tem os recursos do 3.2
Por enquanto o problema é compilar no 3.0, então aquilo resolve.

Para o 3.2 vai ter diferença, coisas a ajustar.

Ele instalou na máquina virtual e funcionou.
Não precisa NADA diferente pra instalar na máquina normal.
Se isso já causou complicação, imagine trocar de compilador.

Lembrando: o Harbour 3.0 vém com tudo junto, pronto pra uso.
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/
Erik Marcondes
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 19 Jul 2021 15:26
Localização: São Paulo / SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por Erik Marcondes »

josé Quintas e Itamar, vocês têm razão!

Instalei o HB32 já compilado, que baixei do endereço: https://onedrive.live.com/?authkey=%21A ... 52B51543A5

E meu script de compilação (com algumas alterações que fiz para controle de fluxo) permaneceu assim:

Código: Selecionar todos

@echo off
rem ************************************************************
rem * Nome do Programa
rem ************************************************************
set /p programa=Digite o nome do programa:
if [%programa%] == [] goto preencha
rem ************************************************************
rem * Configurações do Ambiente
rem ************************************************************
md C:\TEMP
set temp=C:\TEMP
set path=%path%;c:\hb32\bin;c:\hb32\comp\mingw\bin
SET HB_INSTALL_PREFIX=c:\hb32\bin
set HB_COMPILER=mingw
set caminho=%~dp0
rem ************************************************************
rem * Verifica se o arquivo HBP existe
rem ************************************************************
if not exist "%caminho%\%programa%.hbp" goto criehbp
rem ************************************************************
rem * Deleta executável antigo
rem ************************************************************
del %programa%.exe
rem *************************************************************
rem * Se certifica de que vai para o raiz do Windows e limpa tela
rem *************************************************************
cd..
cd..
cd..
cd..
cd..
cd c:
cd hb32\bin
color 0f
CLS
rem ************************************************************
rem * Executa Compilação
rem ************************************************************
hbmk2 %caminho%\%programa%.hbp
pause
%programa%.exe
exit
rem ************************************************************
rem * Mensagem de Erro
rem ************************************************************
rem Caso o preenchimento não tenha ocorrido.
:preencha
color 4f
cls
echo Preencha o nome do programa!
pause
exit 
rem Caso nao exista o arquivo HBP.
:criehbp
color 4f
cls
echo Crie o arquivo HBP com as configuracoes de compilacao!
pause
exit 
Ou seja, a única alteração necessária é no Set Path, direcionando para a pasta onde está o HB32.

E compilou direitinho no Windows 10 x64!

Muito Obrigado!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por Itamar M. Lins Jr. »

Olá!
Addendum.

Código: Selecionar todos

SET HB_INSTALL_PREFIX=c:\hb32\bin
Só precisa da pasta raiz. Senão vai instalar errado.
Funcionou pq vc baixou o HB já pronto.
O correto é:

Código: Selecionar todos

SET HB_INSTALL_PREFIX=c:\hb32
Outro detalhe importante que pode causar confusão.
O Harbour 3.2 ou quando tem uma pasta c:\hb32 não é pq é para 32bits 32 é a versão, não tem nada a ver com 32 ou 64 bits.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Só precisa da pasta raiz. Senão vai instalar errado.
Funcionou pq vc baixou o HB já pronto.
Não apenas pra geração.
Ainda existem pendências dessa configuração pra poder usar.
No Harbour 3.4 foi melhorado, mas não totalmente resolvido.

Acaba funcionando parecido com SET PATH, mas realmente tem que ser pra pasta principal do Harbour, e não pra pasta BIN.
No seu caso pra C:\hb32

Nota:
Numa determinada época avisei o Viktor disso e ele fez algumas melhorias no 3.4.
Se é pra GERAR instalação, e se a compilação usa o PATH, não faz sentido a compilação depender disso.
Mas... ainda depende... e no 3.2 depende muito mais.

E se tiver mais de um Harbour na máquina, piorou... aí é obrigatório mesmo.
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/
jc101b
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 17 Jun 2013 19:12
Localização: Santo Angelo-RS

Como compilar no Windows 10 x64 usando Harbour 3.0.0 e Mingw

Mensagem por jc101b »

Mas onde que encontro essa ver de Harbour 3.4???
Responder