Página 2 de 5

De Harbour 3.4 pra Harbour 3.2

Enviado: 01 Set 2023 19:44
por fladimir
Tenho um projeto q ainda preciso manter funcionando em harbour, uso o 3.4 versao de 2016
S:\>hbmk2
Harbour Make (hbmk2) 3.4.0dev (4541270) (2016-06-28 07:05)
Copyright © 1999-2016, Viktor Szakáts
https://github.com/vszakats/harbour-core/
Aparentemente não percebo problema algum exceto q recebo eventuais erros de size of symbol estourar devido threads q ficam rodando direto, ai qdo da esse erro cliente não percebe mas recebo aki, vi q essa questão foi resolvida em 2020 na 3.2 (não sei se na 3.4)

Baixei o instalador da 3.2 ultima compilação q já vem com o MinGW q é o q eu uso.

Minha dúvida é pra quem migrou da 3.4 pra 3.2 se vou precisar mudar muita coisa, pq uso tb o HaruPDF, MySQL, SQLite, GTWG entre outras cositas mas... segue parte meu arquivo hbp

Código: Selecionar todos

#-- Utilizar nucleos no processamento
-jobs=8
-mt
-gui


# ---------------------------
# Libs / Arqs de conf HBC
# ---------------------------
-lhbxpp 
-lpng
-llibhpdf
-llibmysql

hbct.hbc
hbcomm.hbc
hbhpdf.hbc
hbmisc.hbc
hbmysql.hbc
hbtip.hbc
hbssl.hbc
hbzebra.hbc
hbziparc.hbc
hbwin.hbc
d:\dev\hb34\contrib\letodb\rddleto.hbc
hbMEMIO.HBC
hbNetIO.hbc
xhb.hbc
hbsqlit3.hbc 
gtwvg.hbc


Alguém consegue passar uma ideia se vale a pena migrar ou passo a passo do q terei q fazer

Além disso eu seto as variaveis de ambiente da seguinte forma:

Código: Selecionar todos

@ECHO OFF

rem Para Compilar

    SET HB_INSTALL_PREFIX=D:\DEV\HB34
    SET HB_COMPILER=mingw
    SET HB_ARCHITECTURE=win
    SET HB_WITH_MYSQL=d:\dev\mariadb\include\mysql

    SET HB_TIP_OPENSSL=yes
    SET HB_PATH=D:\DEV\HB34
    SET HB_BIN_INSTALL=D:\DEV\HB34\bin
    SET HB_LIB_INSTALL=D:\DEV\HB34\lib
    SET HB_INC_INSTALL=D:\DEV\HB34\include
    SET HB_DOC_INSTALL=D:\DEV\HB34\doc
    SET HB_BUILD_IMPLIB=YES

    SET LIB_DIR=D:\DEV\HB34\LIB;D:\DEV\HB34\COMP\MinGW64\LIB
    SET INCLUDE_DIR=D:\DEV\HB34\INCLUDE;D:\DEV\HB34\COMP\MinGW\include


rem  Ambiente de trabalho Harbour
 
     SET INCLUDE=D:\DEV\HB34\INCLUDE
     SET INCLUDE=%INCLUDE%;D:\DEV\HB34\CONTRIB\XHB
     SET INCLUDE=%INCLUDE%;D:\DEV\HB34\CONTRIB\hbhpdf
     SET INCLUDE=%INCLUDE%;D:\DEV\HB34\CONTRIB\HBWIN
     SET INCLUDE=%INCLUDE%;D:\DEV\HB34\COMP\MinGW\include
     SET INCLUDE=%INCLUDE%;D:\Projetos\csloja\_INCLUDE

rem  Paths 

     SET PATH=C:\WINDOWS\SYSTEM32\;C:\WINDOWS\SYSWOW64\
     SET PATH=D:\DEV\HB34\BIN\;%PATH%
     SET PATH=D:\DEV\HB34\COMP\MinGW\BIN;%PATH%

     SET LIB=D:\DEV\HB34\LIB\WIN\MINGW;D:\DEV\HB34\MinGW\LIB


De Harbour 3.4 pra Harbour 3.2

Enviado: 01 Set 2023 20:39
por JoséQuintas
De um modo geral vai de boa.
GTWVW é diferente.

Tem parâmetros demais na lista.
Talvez SUA LIB obrigue isso.

Código: Selecionar todos

@ECHO OFF

rem Para Compilar

    SET HB_INSTALL_PREFIX=D:\DEV\HB34
    SET HB_COMPILER=mingw
    SET HB_WITH_MYSQL=d:\dev\mariadb\include\mysql
    SET HB_TIP_OPENSSL=yes
     SET PATH=D:\DEV\HB34\BIN\;%PATH%
     SET PATH=D:\DEV\HB34\COMP\MinGW\BIN;%PATH%

rem  Ambiente de trabalho Harbour
 
     SET INCLUDE=%INCLUDE%;D:\Projetos\csloja\_INCLUDE

rem  Paths 

     SET PATH=C:\WINDOWS\SYSTEM32\;C:\WINDOWS\SYSWOW64\
     SET PATH=D:\DEV\HB34\BIN\;%PATH%
     SET PATH=D:\DEV\HB34\COMP\MinGW\BIN;%PATH%
Aqui uso estes, pra forçar a "não criação" de DLLs

Código: Selecionar todos

HB_BUILD_CONTRIB_DYN=no
HB_BUILD_DYN=no
HB_BUILD_SHARED=no
HB_BUILD_STRIP=all
HB_COMPILER=mingw
HB_INSTALL_PREFIX=d:\harbour
HB_LANG=EN
Mas pode acrescentar o HB_BUILD_STRIP, pra ficar tudo um pouco menor.

Detalhe:
Não sei se resolveram o problema da lib PNG, pode impedir de compilar
Já avisei o que pode ser feito, mas não vi mudança
É só copiar do 3.4

De Harbour 3.4 pra Harbour 3.2

Enviado: 01 Set 2023 23:12
por fladimir
O q tive q mudar aki pra manter os 2 ambientes após instalar o hb32 versao nigthly de hj foi:

# criei bat pra setar os paths etc do hb32 // Desta forma nao afeta o hb34 antigo q tenho pq executo o bat da hb34 e fica tudo pra hb34 se for o caso
# libpng usei uma q o jairo disponibilizou de 2018 blz passou // desta forma pq o libpng.a foi colocado na pasta do mingw da hb32 ou seja o hb34 permanece com o libpng.a dela
## disktotal, diskfree da libct mudei para f_dsksize e f_dskfree da hbnf // só tive q ajustar o HBP e adicionar o HBNF.HBC ai ficou tanto pra hb34 antiga q aceitou qto pra hb32
## utc é da libmisc, copiei do mingw\lib da hb34 para hb32 blz passou // isso aki nao se eu gerar em hb34, porém nao sei se vai afetar a hb32, nos testes aki foi de boa

### ao executar o exe gerado deu erro na libcrypto-1.dll, tive q pegar da pasta mingw\bin\libcrypto.dll da hb32 ai funcionou // isso aki vou ter q testar ver se não vai afetar as senhas que lá em 2016 qdo fui atualizar a 3.4 o Viktor tinha mexido e virou uma bagunça no meu sistema q tive q voltar, aparentemente agora no q testei aki ta tudo funcionando, porém tem q ver no dia a dia, ai na hb34 não sei se vai afetar pq o EXE antigo aceitou essa dll de boa, sem apresentar erro

### Uso a GTWVG ai tem uma função no inicio do sistema q é hb_gtInfo( HB_GTI_PALETTE, aPalette ) onde pra criar a array da paleta de cores uso a WAPI_RGB na hb34 antiga, essa função não achei, vi q ela é da hbwin, porém nesse caso não quis fazer igual fiz com a libmisc, preferi trocar pela RGB nativa hb32, ok passou não vi difernça, não sei se vai afetar, só testando mais, ai na hb34 ao recompilar não afetou tb pq tem a RGB() na hb34
Pelo q percebi foi isso.

De Harbour 3.4 pra Harbour 3.2

Enviado: 02 Set 2023 15:58
por JoséQuintas
RGB no 3.2 tá em #define
Também pode criar a função, é só cálculo com os números.

Em wvt_win.ch:

Código: Selecionar todos

#ifndef RGB
#define RGB( nR, nG, nB )   ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
#endif
Aqui tanto faz, gerava com mingw 7.3 e agora com 13.2.
Só copiei a pasta do PNG do 3.4, senão no 3.2 dá erro na geração e/ou no uso.
Tem uma longa lista no harbour-users sobre problemas, mas até hoje não fizeram essa operação simples.

De Harbour 3.4 pra Harbour 3.2

Enviado: 02 Set 2023 19:38
por fladimir
Zé vc usa o 3.4 ou 3.2?

Consegui rodar o 3.2 e o 3.4 (2016)

A dúvida é pra não ter q ficar com 2 pra manter um projeto q tenho ainda, atualizo minha 3.4 ou vou de 3.2 atualizado?

Pq na pratica vai rodar de boa em ambos, mas to me referindo a caso precise atualizar futuramente novamente

De Harbour 3.4 pra Harbour 3.2

Enviado: 02 Set 2023 20:05
por JoséQuintas
A única certeza do futuro é a morte.

Eu só usava 3.4

Agora só uso 3.2

A única questão que tive foi portar MINHAS funções da GTWVG pro 3.2.
Assim que ajustei, fiquei no 3.2.

Os dois funcionam bem, tanto faz, apenas comecei a criar problemas na hora de contribuir pra libs, por usar recursos do hbmk2 que faltam no 3.2.
Usando mesma versão de harbour não crio mais problema.

Não sei o quanto fica visível para público, usando máquinas do github.

a geração do harbour 3.2 está aqui:

https://github.com/JoseQuintas/sefazcla ... 2_0703.yml

E a geração de hmg3, hmg extended, oohg, hwgui, etc. com esse harbour está aqui

https://github.com/JoseQuintas/sefazcla ... 32pack.yml

É tudo no próprio github, sem interferência manual.
Aí mostra as mensagens apresentadas durante cada geração.

De Harbour 3.4 pra Harbour 3.2

Enviado: 11 Set 2023 16:25
por deividdjs
estou migrando de xharbour 1.1.2 para harbour 3.2 ... e estou enfrentando um erro na compilação .. alguem já passou por isso ??

FATAL: unable to open file LANG.LIB

uso o xDEV STUDIO v0.70

Abraço.

De Harbour 3.4 pra Harbour 3.2

Enviado: 11 Set 2023 17:50
por JoséQuintas
XDEV studio deveria ser só editor, tanto faz.

A princípio não deveria faltar nada.

Geralmente o harbour é gerado com um determinado compilador C.
Na geração são criadas as LIBs para esse compilador C.
Se tentar usar com compilador diferente, vai dar falta de LIBs para o novo compilador.

Faltar LANG.LIB.....
Primeira coisa: extensão LIB se refere a BCC ou MSVC.
Tá usando um desses mesmo ? e baixou harbour pronto pra eles ou pra mingw ?

Se baixou pra mingw, talvez melhor ajustar a variável de ambiente pra forçar mingw:
SET HB_COMPILER=mingw

De Harbour 3.4 pra Harbour 3.2

Enviado: 12 Set 2023 08:12
por deividdjs
JoséQuintas escreveu:XDEV studio deveria ser só editor, tanto faz.

A princípio não deveria faltar nada.

Geralmente o harbour é gerado com um determinado compilador C.
Na geração são criadas as LIBs para esse compilador C.
Se tentar usar com compilador diferente, vai dar falta de LIBs para o novo compilador.

Faltar LANG.LIB.....
Primeira coisa: extensão LIB se refere a BCC ou MSVC.
Tá usando um desses mesmo ? e baixou harbour pronto pra eles ou pra mingw ?

Se baixou pra mingw, talvez melhor ajustar a variável de ambiente pra forçar mingw:
SET HB_COMPILER=mingw
eu baixei pronto José essa versão 3.2 .. o no XDEV consigo configurar o compilador e o linkeditor tbm ... uso a anos o xharbour nele .. porem agora gostaria de mudar porque muitos dos exemplos e ajudas que encontro na internet sempre é para HARBOUR ..

eu notei q o LANG.lib se encontra da pasta do xharbour mais nao na dor harbour 3.2 ..

eu estou usando o BCC5.82 posso continuar ou tenho q mudar ?? desculpa estou meio perdido ..

obrigado.

De Harbour 3.4 pra Harbour 3.2

Enviado: 12 Set 2023 08:48
por JoséQuintas
Deve ter baixado pra mingw.
Olhe na pasta LIB.
Geralmente o Harbour usa pastas conforme o compilador: lib/mingw, lib/mingw64, lib/bcc, lib/bcc64, lib/msvc, lib/msvc64
Além disso, lib pra mingw terminam com .a, e começam com lib, por exemplo liblang.a, ao invés de lang.lib

Melhor sair usando o que veio mesmo.

Nota: Tem lib que depende de direitos autorais, e não faz parte dos fontes, gerar do zero pode complicar, CASO PRECISE DELAS.
Então use o que veio, e deixe pra gerar harbour do zero pra depois, senão pode complicar.

De Harbour 3.4 pra Harbour 3.2

Enviado: 12 Set 2023 11:34
por deividdjs
na pasta lib só tem uma sub-pasta WIN/MINIGW mesmo ... mais nada ..

onde eu baixo o HARBOUR 3.2 completo ?? para eu começar minha migração aqui heheheh

estou enferrujado home de Deus ..

Abraço e obrigado .. Deus abençoe vc ..

De Harbour 3.4 pra Harbour 3.2

Enviado: 12 Set 2023 12:10
por JoséQuintas
E nessa pasta não tem os arquivos .A ?

No endereço do harbour, procure por binaries na página.
Vai cair no harbour nightly, que é gerado todo dia.

De Harbour 3.4 pra Harbour 3.2

Enviado: 12 Set 2023 13:46
por deividdjs
JoséQuintas escreveu:E nessa pasta não tem os arquivos .A ?

No endereço do harbour, procure por binaries na página.
Vai cair no harbour nightly, que é gerado todo dia.
sim .. os .A estao dentro de HB32\LIB\WIN\MINGW ..

De Harbour 3.4 pra Harbour 3.2

Enviado: 12 Set 2023 13:52
por deividdjs
JoséQuintas escreveu:E nessa pasta não tem os arquivos .A ?

No endereço do harbour, procure por binaries na página.
Vai cair no harbour nightly, que é gerado todo dia.
Eu achei esse harbour nightly 3.2 ..vem com um instalador .. instalei porém a pasta lib ainda continua sem nenhuma biblioteca dentro .. é normal ?

Abraço,

De Harbour 3.4 pra Harbour 3.2

Enviado: 12 Set 2023 15:01
por JoséQuintas
lib/win/mingw
os arquivos deveriam estar aí

vai no lib

Código: Selecionar todos

dir /s/b
Se não tiver nada, aí estão distribuindo harbour furado.