Página 1 de 1
HARBOUR
Enviado: 04 Nov 2017 17:50
por nvascon
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
HARBOUR
Enviado: 05 Nov 2017 07:01
por RobertoLinux
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.
HARBOUR
Enviado: 05 Nov 2017 15:59
por JoséQuintas
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.
HARBOUR
Enviado: 05 Nov 2017 16:15
por JoséQuintas
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
HARBOUR
Enviado: 07 Nov 2017 09:43
por nvascon
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
HARBOUR
Enviado: 07 Nov 2017 10:18
por JoséQuintas
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.
HARBOUR
Enviado: 07 Nov 2017 19:50
por nvascon
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
HARBOUR
Enviado: 08 Nov 2017 00:29
por JoséQuintas
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=