Arquivo BAT para copilar com harbour

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

Moderador: Moderadores

Avatar do usuário
Arlindo
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 26 Mar 2017 12:31
Localização: Belém/Pará
Contato:

Arquivo BAT para copilar com harbour

Mensagem por Arlindo »

Boa noite amigos

preciso de um BAT para copilar harbour com Fivewin

Já faz algum tempo que venho tentando e não consigo.

Por favor me mandem um pequeno exemplo.

Já trabalho desde 1997 com Fivewin, só com xharbour só que preciso urgente migrar para harbour.

Só que copilo com IDE xHarbour comercial e BAT pra mim com fivewin é novidade.

Alguém pode me ajudar?

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

Arquivo BAT para copilar com harbour

Mensagem por JoséQuintas »

Se acompanhou meus posts sobre HBP e da ALLGUI, deve ter visto que em Harbour não precisa BAT.

O BAT é apenas uma conveniência de cada um, pra automatizar processos.

A maioria acostuma com BATs, ou IDEs, ou outra coisa, e até esquece como usar Harbour, ou mesmo no Clipper.
E algumas LIBs fazem acostumar com BATS ou IDEs, e ajudam pra fazer o usuário esquecer como se faz.

Vamos lá:
O Harbour tem o arquivo de projeto, chama-se HBP.
Nele você coloca a lista de tudo que faz parte do projeto.
É uma coisa por linha.

O que pode fazer parte de um projeto Harbou, não importa se é fivewin, minigui, hwgui, Harbour puro, etc.

ARQUIVOS PRG (fontes)

Basta indicar o nome

ARQUIVOS CH (aqueles #include do fonte)

Geralmente o nome é indicado no próprio fonte.
Caso esteja em uma pasta diferente do fonte, no HBP indica a pasta do arquivo ch
Não precisa pra arquivos que fazem parte do Harbour.
-i\nomedapasta\

ARQUIVOS RC (Resource: imagens e outras coisas)

Basta indicar o nome

ARQUIVOS LIB (ou .a) (Bibliotecas)

Precisa duas indicações SEPARADAS: o nome e a pasta
Para a parte padrão do Harbour não precisa.
-lNomeDaLib
-LPastaDaLib

Arquivos FMG (telas minigui)

Ele é indicado como #include, então segue a regra de arquivos CH

Existe também o arquivo HBC, que é um conjunto de instruções do mesmo tipo acima, mas com sintaxe diferente.
Mas é a mesma coisa: pode definir LIBs, CHs, pastas, etc.

Acho que isso cobre a maioria das coisas.

O ideal é criar um arquivo HBC para o fivewin, pra uso geral, e um HBP para seu aplicativo.

Se não sabe criar, comece por tentativa e erro: vai criando, testando, e acrescentando o que faltar no HBP, conforme as mensagens de erro.

Mas lembrando:
Se for usar, por exemplo, Borland C, vai precisar Harbour pra Borland C, e fivewin pra Harbour/Borland C.

E pra compilar, vai ser:
hbmk2 arquivo.hbp

Lógico, todo ambiente precisa estar configurado: Harbour\bin no PATH e compilador C também no PATH.


Ah sim, faltou dizer:

Será IMPOSSÏVEL alguém te mandar um bat que funcione na sua máquina.
Ninguém tem a menor idéia em que pastas instalou Harbour ou fivewin ou compilador C no seu computador.
Então o melhor negócio é aprender como se faz, e saber o que fez na sua máquina.
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
Arlindo
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 26 Mar 2017 12:31
Localização: Belém/Pará
Contato:

Arquivo BAT para copilar com harbour

Mensagem por Arlindo »

Será IMPOSSÏVEL alguém te mandar um bat que funcione na sua máquina.

Oh amigo obrigado.

Mais não precisa ninguém saber onde ta meu arquivos, pelo exemplo que vem eu altero.

Fiz este mais ainda funfou

Nome do arquivo

finance.hbp

-oFinance

-incpath=c:\fwh1412\include
-Lc:\fwh1412\lib

-gtgui
-strip
-jobs=%NUMBER_OF_PROCESSORS%
-inc
-run

C:\Harbour\contrib\hbmysql\hbmysql.hbc
C:\Harbour\contrib\hbwin\hbwin.hbc
C:\Harbour\contrib\xhb\xhb.hbc
C:\Harbour\contrib\hbct\hbct.hbc
C:\Harbour\contrib\hbmisc\hbmisc.hbc

finance.prg
BIBI.PRG
MENCAD.PRG
MENLAN.PRG
MENCAI.PRG
MENREC.PRG
MENPAG.PRG
MENCCO.PRG
DIVERS.PRG
HELP32.PRG
MSGMETER.PRG
MSGRUN.PRG
MSGTF.PRG
window.prg
FWERROR.PRG
RPREVIEW.PRG
MENZIP.PRG
MENAGE.PRG
TCALENDA.PRG
menlan2.prg
MENFIN.PRG
menrel.prg

finance.res
finance2.res


Pode colocar pra mim onde coloco as libs os ch as pastas do fivewin etc...
é só da um exemplo de pasta que altero aqui

Os PRGS são da minha aplicação mais lá no começo não sei se está certo, peguei este exemplo no google

Obrigado e sem criticas.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivo BAT para copilar com harbour

Mensagem por JoséQuintas »

Comparando o seu HBP com o texto que coloquei, só a pasta de CH está errada, está no formato do HBC e não do HBP.
e falta o nome das libs do fivewin, que estão em c:\fwh412\lib

Código: Selecionar todos

-ic:\fwh412\include
-libfive1 
-llibfive2
Se quiser aproveitar depois, pode criar um HBC para o fivewin, seria assim:

fivewin.hbc

Código: Selecionar todos

incpaths=c:\fwh1412\include
libpaths=c:\fwh1312\lib
libs=libfive1 libfive2
gui-yes
mt=yes
troque libfive1 libfive2 pela lista de libs do fivewin
salve o hbc dentro de \harbour\addons

depois pode substituir no arquivo HBP o que se refere a fivewin por fivewin.hbc

A vantagem seria ficar pronto pra qualquer projeto fivewin.
Ou....
Salve na pasta do fivewin (c:\fhw1412), e crie este hbmk.hbc na pasta \harbour\bin

Código: Selecionar todos

libs=c:\fwh1412
A vantagem da segunda forma é que ao fazer backup do fivewin, já leva o hbc, que contém a configuração, junto.
Inclusive vai poder usar path relativo ao invés de path completo, o que o torna mais portátil. (o path em relação ao path atual, ao invés do path exato)

Código: Selecionar todos

incpaths=include
libpaths=lib
libs=libfive1 libfive2
gui-yes
mt=yes
Desse último jeito, não importa a pasta do fivewin para o hbc.
Só vai importar para o hbmk.hbc da pasta \harbour\bin
É assim que as LIBs do Harbour trabalham.

Espero não ter complicado.

Comece testando pelo HBP, até funcionar.
Depois, se quiser, ajuste pra usar o HBC.
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
Arlindo
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 26 Mar 2017 12:31
Localização: Belém/Pará
Contato:

Arquivo BAT para copilar com harbour

Mensagem por Arlindo »

Boa tarde amigo

Consegui fazer pelo hbp
Só está dando este erro.
poderia me explicar, como proceder?

obrigado

Código: Selecionar todos

D:\finance>hbmk2 finance.hbp
hbmk2: Linkando... Finance.exe
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 'C:\FWH911\LIB\FIVEHCM.LIB' contains invalid OMF record, type 0x21 (possi
bly COFF)
hbmk2[finance]: Erro: Executando linkeditor. 2
ilink32.exe @C:\Users\arlindo\AppData\Local\Temp\vl346f.lnk
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivo BAT para copilar com harbour

Mensagem por JoséQuintas »

Acredito que possa ser uma mistura de libs.

A extensão LIB vale pra Microsoft Visual C (msvc) e pra Borland C (bcc).
Confirme se essa LIB é pra MSVC ou BCC, e até mesmo se é pra uma versão específica.

Como o HBMK2 chamou o BCC, significa que o Harbour vai pegar as LIBs dele em BCC.
O mesmo não acontece com fivewin, porque vai pegar da pasta que voce indicou, sem testar se é bcc ou msvc.

A não ser que tenha pros dois compiladores e possa colocar a escolha automática no HBP.

O mingw usa extensão .A ao invés de .LIB, por isso não tem problema se misturar as LIBs na mesma pasta.
Já msvc e bcc, só colocando em pastas diferentes.

Se olhar a pasta de LIBs do Harbour, elas são divididas assim:

\harbour\lib\win\msvc
\harbour\lib\win\mingw
\harbour\lib\win\bcc

por isso não mistura entre compiladores, mas ainda assim pode ser qualquer versão de mingw, qualquer versão de msvc ou qualquer versão de bcc.


Querendo ou não, tem que lembrar que o Harbour não é compilador.
O compilador é o compilador C.
A versão do compilador C é a primeira coisa a comparar entre Harbour e LIBs, e até mesmo as próprias LIBs do Harbour tem que ter sido geradas pelo mesmo compilador C.
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