Página 1 de 1

Gerar o Harbour

Enviado: 06 Jun 2021 14:11
por JoséQuintas
Faz tempo que não consigo gerar o Harbour 3.4 na minha máquina.
Não sei porque, já que as ferramentas são sempre as mesmas.
Parece que ficam restos de uma geração pra outra, e uma vez testado outro compilador C, já era...
Acabo mantendo a última que foi gerada.

É esquisito isso.

Gerar o Harbour

Enviado: 06 Jun 2021 19:17
por JoséQuintas
Resolvido:

Cancelando as atualizações após 2017 voltou a gerar.
No momento o Harbour 3.4 oficial não gera, mas cancelando alterações tudo bem.

Gerar o Harbour

Enviado: 06 Jun 2021 19:22
por JoséQuintas
O erro, pra curiosidade.

Código: Selecionar todos

c:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../bin/win/mingw/.hbmk/hbdoc/_html.o:_html.c:(.data+0xa68): undefined reference to `HB_FUN_HB_DEF'
collect2.exe: error: ld returned 1 exit status
hbmk2 [hbdoc]: Error: Running linker. 1
hbmk2 [hbdoc]: Exit status: 7: failed in final assembly (linker or library manager)
! Finished rebuild and install...
mingw32-make[1]: *** [Makefile:8: install] Error 7
mingw32-make: *** [config/dir.mk:68: contrib.inst] Error 2
Error: Process completed with exit code 1.

Gerar o Harbour

Enviado: 06 Jun 2021 22:08
por JoséQuintas
Resolvida essa questão....

Em maio voltou a existir a versão gcc tdm

https://jmeubank.github.io/tdm-gcc/download/
mingw.png
E usando essa versão:
jpa32.png
jpa64.png
Lógico, pra funcionar o JPA 32 ou 64 bits, é instalando ODBC MariaDB 32 ou 64 bits, a versão correspondente.
Lógico também.... como SefazClass é feita encima de MSXML5 e Capicom, ambos 32 bits, à primeira vista não vão funcionar com JPA 64 bits.

Mas é baixar os fontes do Harbour 3.4, CANCELAR as últimas atualizações, baixar o compilador C indicado, e gerar pra 32 e 64 bits.
A única parte chata é que o instalador do TDM é em Windows, não sei se vai funcionar instalação pelo prompt.

Gerar o Harbour

Enviado: 06 Jun 2021 22:16
por JoséQuintas
git.png
Como cancelar atualizações:

Abre o GIT, visualizar repositório, vá até a atualização que interessa, clique da direita, reset main branch to here.
Pronto.
A pasta de fontes vai retornar à posição que estava nessa atualização.
Daí é só gerar, 32 e/ou 64 bits.

Gerar o Harbour

Enviado: 06 Jul 2021 10:40
por Valdir
Olá José Quintas.
Só pra registrar, tenho instalado na máquina o Linux Cinnamon e por várias vezes fiz o procedimento que o Vlademiro descreve no seu manual pra instalação do Harbour em Linux e sempre funcionou. Há alguns dias tive de formatar a máquina e quando fui instalat o Harbour, aconteceu o mesmo problema que você relatou acima. Veja a mensagem que apresenta no final da execução do comando make:

make HB_WITH_PGSQL=/usr/include/postgresql/libpq HB_WITH_MYSQL=/usr/include/mysql
...

/harbour-core/bin/linux/gcc/hbmk2 -lang=en -quiet -width=0 -autohbm- @../config/hbpre -inc ./hbxpp/hbxpp.hbp @../config/hbpost
/harbour-core/bin/linux/gcc/hbmk2 -lang=en -quiet -width=0 -autohbm- @../config/hbpre -inc ./hbcomm/hbcomm.hbp @../config/hbpost
/harbour-core/bin/linux/gcc/hbmk2 -lang=en -quiet -width=0 -autohbm- @../config/hbpre -inc ./hbdoc/hbdoc.hbp @../config/hbpost
../bin/linux/gcc/.hbmk/hbdoc/_html.o:(.data.rel+0x1490): undefined reference to `HB_FUN_HB_DEF'
collect2: error: ld returned 1 exit status
hbmk2 [hbdoc]: Error: Running linker. 1
hbmk2 [hbdoc]: Exit status: 7: failed in final assembly (linker or library manager)
! Finished build...
Makefile:8: recipe for target 'first' failed
make[1]: *** [first] Error 7
config/dir.mk:71: recipe for target 'contrib' failed
make: *** [contrib] Error 2

Tentei várias veses e em máquinas diferentes e sempre dá esse erro no final.

Abraço,
Valdir

Gerar o Harbour

Enviado: 06 Jul 2021 13:57
por JoséQuintas
Vai ter que fazer aquele procedimento, mas acho que no Linux vai ter que ser via comandos.

Não lembro de cabeça, mas é algo parecido com git reset -- hard HEAD~10
Isso significaria voltar 10 commits atrás
Foi apenas exemplo, não sei se vão ser 10.

Talvez também dê pra baixar direto na versão liberada.
Mas também não lembro o comando exato.
git pull endereço e-aqui-vai-o-comando-pra-definr-posição, relacionado com o label usado como release.
Esses labels são definidos justamente pra isso, pra pegar a posição exata, sem erros.

Gerar o Harbour

Enviado: 15 Jul 2021 13:32
por Valdir
Olá José.

Fizemos testes com as versões 4.19 e 5.15 do kernel do Linux e o erro continuou. Por isso a conclusão é que o problema não deve estar na versão do sistema operacional e sim no "branche" liberado em maio/2021.

Fizemos outros testes utilizando o parâmetro "-i" na linha de comando e funcionou, mas tivemos de eliminar o parâmetro "-lxhb" na compilação. Como a aplicação não utiliza esse lib, acabou rodando.

A linha de instalação ficaram assim:
make -i HB_WITH_PGSQL=/usr/include/postgresql/libpq HB_WITH_MYSQL=/usr/include/mysql
make -i install

Obrigado pelas dicas.
Valdir

Gerar o Harbour

Enviado: 15 Jul 2021 18:08
por Itamar M. Lins Jr.
Olá!
Apenas um AVISO, esse Harbour está congelado.
A versão oficial é a 3.2
Usava só essa, mas deixei pq foi praticamente abandonada.

Saudações,
Itamar M. Lins Jr.

Gerar o Harbour

Enviado: 15 Jul 2021 18:43
por JoséQuintas
Vou acabar usando a 3.2, qualquer dia.

É que vou precisar fazer as conversões binárias pra funcionar minhas alterações na API Windows.
E não estou com paciência nenhuma de fazer isso.

Interessa o limite monstruoso do 3.2 pra variáveis, e o euro como codepage adicional.
Não vou usar nenhum dos dois, mas faz falta para compilar os exemplos das LIBs.

No momento podemos dizer que a 3.4 MORREU, porque NÃO FUNCIONA MAIS.
O Viktor estragou a última versão - ou precisa de algo mais, sei lá.
Ou baixa a versão fechada, ou baixa e cancela as últimas alterações.

Se baixar a última versão do 3.4, não vai conseguir compilar.

NÃO TEM nenhum problema com o 3.4, dá pra continuar usando tranquilamente.
Mas.... se não compila a última versão, significa que o Viktor já matou o 3.4 adiantado.
Ele NUNCA fez isso, nunca aconteceu isso, portanto... é confirmação de que parou tudo mesmo de vez.

Gerar o Harbour

Enviado: 16 Jul 2021 14:58
por Valdir
Olá Itamar,

Só esclarecendo: e eu usei os passos descritos no manual do Vlademiro Landin Junior para instalação do Harbour no Linux e a versão que é baixada quando usa o github é a 3.4.
Estou usando agora a versão LMDE do Mint que uriliza a versão Buster do Debian (kernel 4.19), mas o erro também aconteceu quando eu utilizei a última versão do Mint Cinnamon (kernel 5.15).
Fiz várias instalações nos últimos meses e todas funcionaram, mas de algumas semanas para cá começou a dar o erro que foi relatado acima.
Conforme documentação do site, em 21/05/2021 foi feita uma atualização e creio que a partir daí é que começou a dar errado. Mais abaixo explico onde provavelmente está o erro que gerou esse problema.
Mas seguindo sua dica, estou baixando a versão 3.2 para o Linux.
Obrigado!

Olá José
Analisando o erro da compilação, ele aponta para o arquivo abaixo:
bin/linux/gcc/.hbmk/hbdoc/_html.o

Ao editar o arquivo correspondenrte em C (bin/linux/gcc/.hbmk/hbdoc/_html.c), vimos que a definição HB_DEF não tem uma função correspondente, então eliminamos a linha abaixo do arquivo bin/linux/gcc/.hbmk/hbdoc/_html.c

{ "HB_DEF", { HB_FS_PUBLIC }, { HB_FUNCNAME( HB_DEF ) }, NULL },

Ao recompilar após a exclusão dessa linha, não acusou erro caracterizando que a função HB_DEF não está sendo utilizada em qualquer outro fonte.
Como na minha aplicação não uso a interface gráfica, não percebi nenhum outro problema e a aplicação rodou normalmente após a compilação.

Abraço,
Valdir e Osmar

Gerar o Harbour

Enviado: 16 Jul 2021 17:15
por JoséQuintas
Valdir escreveu:Ao editar o arquivo correspondenrte em C (bin/linux/gcc/.hbmk/hbdoc/_html.c), vimos que a definição HB_DEF não tem uma função correspondente, então eliminamos a linha abaixo do arquivo bin/linux/gcc/.hbmk/hbdoc/_html.c
Então... essa alteração ele fez neste ano, e é ela que causa erro.
A proposta que eu fiz era anular a alteração, voltando uma posição anterior, aonde os fontes funcionavam.

Se não me engano é parecido com git reset --HARD HEAD~n

onde n é o número de alterações a voltar atrás.

Acabaria num mesmo resultado.

Gerar o Harbour

Enviado: 16 Jul 2021 17:17
por Itamar M. Lins Jr.
Olá!
Sempre acompanhei o Viktor, sempre usei as versões dele.
Mas não adianta nada a pessoa cria o melhor sistema do mundo, veja ou leia a historia do Reiser programador que criou a Reiser FS do Linux, o melhor sistema de arquivos na época. Mas não adianta nada, o trabalho se faz com outras pessoas. Ninguém está aqui sozinho.
Posso até usar a versão dele, mas não deixarei a comunidade.
A versão 3.2 tem muita coisa dele mas tem a participação de outras pessoas também. Igual a 3.4 que na época ele copiava os avanços da 3.2 na 3.4.

Sozinho não dá ! E ninguém é o todo poderoso !

Saudações,
Itamar M. Lins Jr.