Clipper On Line • Ver Tópico - HARBOUR

HARBOUR

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

Moderador: Moderadores

 

HARBOUR

Mensagempor nvascon » 04 Nov 2017 16:50

Boa a tarde.

Estou há tempo tentando migrar para harbour, mas não consigo compilar.

Tenho instalado na mina maquina o hmg.3.4.4
Alguém poderia verificar se o bath está errado.
Está dando a seguinte mensagem: hbmk2: Processando opções do ambiente: -comp=msvc

NILSON

SET HB_INSTALL_PREFIX=c:\harbour

SET HB_COMPILER=msvc

hbmk2 projeto.hbp -comp=mingw
hbmk2 projeto.hbp -comp=msvc
hbmk2 projeto.hbp -comp=bcc

hbmk2 projeto.hbp -comp=mingw
hbmk2 projeto.hbp -comp=msvc
hbmk2 projeto.hbp -comp=bcc

SET PATH=%PATH%;c:\BCC55\BIN;c:\hmg.3.4.4\HARBOUR\bin


SET INCLUDE=c:\hmg.3.4.4\HARBOUR\include;c:\Bcc55\include;c:\hmg.3.4.4\MINGW\bin;c:\hmg.3.4.4\HARBOUR\bin
SET LIB=c:\Bcc55\lib;c:\hmg.3.4.4\HARBOUR\lib;c:\MINGW\lib

SET HB_PATH=C:\hmg.3.4.4\HARBOUR
nvascon
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 5
Data de registro: 20 Mar 2012 07:37
Cidade/Estado: MONTE MOR/SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

HARBOUR

Mensagempor RobertoLinux » 05 Nov 2017 06:01

Olá.

Eu não tenho certeza, mas a var ambiente HB_INSTALL_PREFIX ta apontando para outra pasta, verifique tbm os arquivos BCC32.CFG E ILINK.CFG.

Felicidades.
Entusiasta
Avatar de usuário

RobertoLinux
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 110
Data de registro: 14 Abr 2014 18:32
Cidade/Estado: Fortaleza/Ce
Curtiu: 7 vezes
Mens.Curtidas: 6 vezes

HARBOUR

Mensagempor JoséQuintas » 05 Nov 2017 14:59

O que está errado é tudo, começando pelo programador...... rs

Um grande erro destas bost.s de LIBs é pensar que elas são um produto individual, que não tem nada a ver com Harbour/XHarbour.
Elas ensinam tudo errado, pra deixar preso a elas.

Como compilar com Harbour/XHarbour: Configurar O HARBOUR/XHARBOUR

1) Path do Harbour/XHarbour e configurações básicas

Exemplo:

set PATH=c:\harbour\bin;%PATH%
set HB_INSTALL_PREFIX=c:\harbour

2) Path do Compilador C e configurações básicas.

Depende do compilador, sendo que alguns não são aceitos no Harbour 3.4
Pode até configurar todos ao mesmo tempo.

Exemplos:

set PATH=c:\harbour\comp\mingw\bin;%PATH%
set PATH=c:\harbour\comp\msvc2010\bin;%PATH%
set PATH=c:\harbour\comp\bcc55\bin
set PATH=c:\harbour\comp\pocc\bin

Para BCC, MSVC e POCC, também a pasta de LIBs e includes

Depende do compilador, mas para os que precisam de INCLUDE/LIB, não pode configurar todos ao mesmo tempo, porque eles conterão nomes iguais., tanto de .H, quanto .LIB
Sendo que pode precisar indicar arquivos do compilador C, e também do kit Windows (SDK)

Exemplos .lib

set LIB=c:\harbour\comp\bcc55\lib
set LIB=c:\harbour\comp\msvc2010\lib
set LIB=c:\harbour\comp\pocc\lib

Exemplos arquivos .H (include), sendo que pode precisar indicar arquivos do compilador C, e também do kit Windows (SDK)

set INCLUDE=c:\harbour\comp\bcc55\include
set INCLUDE=c:\harbour\comp\pocc\include;c:\harbour\comp\pocc\include\win
set INCLUDE=c:\harbour\comp\msvc2010\include

E para o compilador C default, que vai usar sempre, pode deixar pré configurado

exemplo

set HB_COMPILER=mingw
set HB_COMPILER=bcc
set HB_COMPILER=mingw64

3) Pra completar, caso seja XHarbour e queira usar o HBMK2, precisa copiar do Harbour o HBMK2.EXE pra pasta harbour\bin porque o XHarbour não tem

4) O Harbour precisa conter as LIBs no formato do compilador C, assim como a biblioteca, que no seu caso é HMG Extended
Se for da maneira correta, a pasta \harbour\lib\win vai conter pastas para cada compilador C
Só vai poder usar o compilador C que possuir pasta de LIB correspondente

\harbour\lib\win\msvc
\harbour\lib\win\msvc64
\harbour\lib\win\mingw
\harbour\lib\win\mingw64
\harbour\lib\win\pocc
\harbour\lib\win\pocc64

5) Por último, também importante: precisa das LIBs da HMG Extended no mesmo compilador C do Harbour/XHarbour.
Se não existir, é gerar a LIB

Se a LIB possuir HBP/HBC geralmente é mais fácil, desde que as LIBs tenham feito eles da forma correta.
Senão, talvez melhor criar seus próprios arquivos pra LIB.

Pra pensar:

Não adianta passar seus PATHs e suas configurações, porque não dá pra ninguém adivinhar o que tem instalado nessas pastas, e nem mesmo dá pra saber se essas pastas existem.

Mas uma coisa é certa: Não existe oficialmente um Harbour 3.4 pra funcionar com BCC

Se estiver configurado errado, é só olhar as mensagens:

- Se não encontrar o compilador Harbour/XHarbour.... é porque a pasta BIN dele não está no path, ou não está instalado

- Se não encontrar o compilador C... é porque a pasta BIN dele não está no path, ou não está instalado

- Se der falta de arquivo CH... é porque não está no INCLUDE, não está no HBP, ou não existe

- Se der falta de arquivo LIB/.A... é porque não está no LIB, não está no HBP, ou não existe para o compilador C escolhido

- Se der falta de funções.... é porque falta indicar algum PRG, alguma LIB, ou o nome dentro do fonte tá errado

Isso vale pra qualquer compilador Harbour/XHarbour, qualquer compilador C, qualquer LIB.
É tudo igual, mas eles tem mania de inventarem formas diferentes.

Faltou dizer:

Para usar o HBMK2.EXE no XHarbour é necessário SEMPRE acrescentar na linha de comando -xhb (ou talvez dentro do HBP, precisa confirmar)

Então agora, com base no texto, confirme o que existe ou não na sua máquina.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HARBOUR

Mensagempor JoséQuintas » 05 Nov 2017 15:15

Também faltou dizer:

hbmk2 projeto.hbp -comp=mingw
hbmk2 projeto.hbp -comp=msvc
hbmk2 projeto.hbp -comp=bcc

A opção -comp é pra usar um compilador diferente do que está em HB_COMP.
Mas continuam valendo todas as regras: se não tem o compilador C indicado, ou as LIBs para o compilador C indicado, não vai criar o EXE.

Só comentário a mais:
Não é tão difícil quanto parece. é confirmar que tudo vai ser encontrado.

Para cada "extensão" de arquivo, vai ser usada uma forma diferente de indicar o PATH

- set PATH para EXEs
- set INCLUDE para .H e .CH
- set LIB para .LIB ou .A
- set OBJ para .OBJ
- dentro do HBC, indicando libpaths= incpaths=
- dentro do HBP, indicando -Lpath, -Ipath

Nem adianta falar que os 4 primeiros ítens são complicados, porque no CLIPPER era do mesmo jeito, portanto igual há uns 30 anos.
Se ainda não entendeu... tá na hora de entender.
E as LIBs não deveriam esconder isso.... mas encondem ao ficarem criando BATs e inventando variáveis diferentes
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HARBOUR

Mensagempor nvascon » 07 Nov 2017 08:43

Sr. JoséQuintas

Muito grato pela atenção aos meus questionamentos.
Com sua ajuda consegui caminhar mais um pouco.
Agora estou com outra dificuldade que espero que o Sr. possa me ajudar:
hbmk2: Erro: Executando compilador C/C++. -1 gcc.exe -c -O3 -W -Wall -pipe -Ic:/hmg..3.4.4/HARBOUR/include C:/Users/Nilson/AppData/Local/Temp/hbmk_vqbe7p.dir/tela1.c C:/Users/Nilson/AppData/Local/Temp/hbmk_vswaiu.c

Como sair dessa

Grato

Nilson
nvascon
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 5
Data de registro: 20 Mar 2012 07:37
Cidade/Estado: MONTE MOR/SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

HARBOUR

Mensagempor JoséQuintas » 07 Nov 2017 09:18

Este começo é suficiente pra saber o que deu errado

bmk2: Erro: Executando compilador C/C++. -1 gcc.exe


não encontrou o gcc.exe
Um jeito de procurar.

dir \gcc.exe /s/b

d:\harbour\comp\mingw\mingw64\bin\gcc.exe
d:\hb32\comp\mingw\bin\gcc.exe


Uma vez encontrado, é colocar no PATH a pasta do gcc.exe que vai usar
No meu caso, sei que é o dentro de d:\harbour porque é o Harbour 3.4

SET PATH=d:\harbour\comp\mingw\mingw64\bin;%PATH%

Lembrando que o Windows vai pesquisar toda lista que estiver em PATH, então cuidado pra não indicar mais de um local que tenha gcc.exe
Esse gcc.exe faz parte do pacote de compilador C que acabamos chamando de mingw.

Pra testar se configurou direito o GCC é simples, ele precisa funcionar.... rs
Só digitar

GCC <ENTER>

Se carregar o GCC.EXE, quer dizer que está no PATH.
É pra isso que serve o SET PATH, pra poder chamar o programa dentro de qualquer pasta, sem ter que ir até a pasta aonde ele está instalado.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

HARBOUR

Mensagempor nvascon » 07 Nov 2017 18:50

Sr. JoséQuintas,

O Sr. deu uma verdadeira aula de como configurar o PATH para compilar em HARBOUR.
Mas como não estamos familiarizados com tudo isso, aparecem situações que não encontramos explicações (no clipper não tinha nada disso).

se inverto a posição dessas linhas, o hbmk2 funciona ou não:

HBMK2 FUNCIONA:

set PATH=c:\BCC55\bin
set PATH=c:\hmg.3.4.4\HARBOUR\BIN

HBMK2 NÃO FUNCIONA:

set PATH=c:\hmg.3.4.4\HARBOUR\BIN
et PATH=c:\BCC55\bin

TEM UMA EXPLICAÇÃO PARA ISSO?

============================

Quando rodo só o HBMK2 -> FUNCIONA

Quando rodo o HBMK2 TESTE(MEU PRG) dá a seguinte mensagem:
nenhum compilador C suportado foi encontrado em seu PATH
Por favor, utilize a opção - comp= com um destes valores: mingw, ... (o que essa opção -comp= faz?

Desculpe se estiver exigindo demais; estou tentando entender.

Grato

NILSON
nvascon
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 5
Data de registro: 20 Mar 2012 07:37
Cidade/Estado: MONTE MOR/SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

HARBOUR

Mensagempor JoséQuintas » 07 Nov 2017 23:29

Simples: o set path NÃO acumula lista.

Pra adicionar mais paths, pode ser usada a variável PATH, como mostrei antes.
Ou colocar entre vírgula, ou as duas coisas ao mesmo tempo.

SET PATH=c:\bcc55\bin
SET PATH=c:\hmg3.4.4\HARBOUR\BIN;c:\bcc55\bin

ou

SET PATH=c:\bcc55\bin,%PATH%
set PATH=c:\hmg3.4.4\HARBOUR\BIN;%PATH%

ou pra manter originais do Windows, talvez editor de texto, etc.

SET PATH=c:\bcc55\bin;c:\hmg3.4.4\HARBOUR\BIN;%PATH%

falou de Harbour 3.4, mas aí está indicando HMG 3.4.4, isso é a versão da minigui, não do Harbour
e bcc55 é o Borland C 5.5, o Harbour 3.4 não funciona com ele.
E naquele erro anterior, era a falta do GCC do mingw, NÃO tem nada a ver com Borland C (BCC).

Borland C: BCC32.EXE
Mingw: GCC.EXE

Quando rodo o HBMK2 TESTE(MEU PRG) dá a seguinte mensagem:
nenhum compilador C suportado foi encontrado em seu PATH
Por favor, utilize a opção - comp= com um destes valores: mingw, ... (o que essa opção -comp= faz?


O HBMK2 tenta detectar automático qual é o compilador C, através dos nomes de pastas que estão no PATH.
Como automático não encontrou nenhum, mostrou a opção de escolher manualmente, que é -comp=
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro