Clipper On Line • Ver Tópico - Como compilar em 64-Bits HMG 3.4.4

Como compilar em 64-Bits HMG 3.4.4

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Como compilar em 64-Bits HMG 3.4.4

Mensagempor NiltonGM » 21 Dez 2018 09:50

Amigos, gostaria de criar executáveis em 64-Bits, porem ao mudar no menu "Build" de 32 para 64-Bits, ao compilar recebo a seguinte mensagem:

"'windres' nao ‚ reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.
'HBMK2' não ‚ reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes."


Uso HMG 3.4.4 Stable (32 bits).

Minhas dúvidas: Será que tenho que re-compilar o HMG totalmente em 64 Bits para gerar executáveis de 64 Bits?
Quais os passos para essas configurações?

Grato!
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor MSDN » 21 Dez 2018 11:29

Nilton,

O que vc falou está certo, para ter um EXE 64 bits, tanto a lib como os seus fontes, tem que ser compilados com o Harbour gerado com o C++ 64 bits.
Eu não uso essa versão da MiniGUI, uso a Extended, mas lembro que na instalação já vem o MingW 64 bits e os scripts.

Abraços
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor JoséQuintas » 21 Dez 2018 12:47

NiltonGM escreveu: Será que tenho que re-compilar o HMG totalmente em 64 Bits para gerar executáveis de 64 Bits?


Isso com certeza.
32 bits também roda em 64 bits, mas se quiser EXE 64 bits, tudo precisa ser compilado em 64 bits.

Sobre os comandos: se for HBMK2... o de sempre.

Aqui uso Harbour 3.4 com mingw-86/64.
Uma opção é SET HB_COMPILER=mingw64, se quiser deixar fixo, ou gerar o Harbour/Libs 64 bits
Outra... hbmk2 projeto -comp=mingw64
E acompanhar a geração da HMG se tudo ok.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor NiltonGM » 21 Dez 2018 12:48

Pois é, tentei compilar o harbour com um bat na raiz da pasta hmg.3.4.4 "_BuildAllLib64.bat" mas dá o mesmo erro para cada lib:
'hbmk2' não é reconhecido como um comando interno ou externo, um programa operável ou arquivo em lotes.
Deve ser o caminho do path dentro do bat q deve estar errado (fora do padrão de instalação). Vou checar.

:(Neg
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor JoséQuintas » 21 Dez 2018 12:52

Isso é HBMK2 fora do PATH.

Como eu já disse, aqui o mingw oficial 86/64, versão 8.1

set HB_COMPILER=mingw
win-make clean install
SET HB_COMPILER=mingw64
win-make install

Isso acima cria o Harbour e as LIBs, tanto 32 bits quanto 64 bits.
Depois disso, é deixar definido um dos dois como default.
SET HB_COMPILER=mingw ou SET HB_COMPILER=mingw64

A partir daí, pode gerar aplicativos tanto em 32 quanto em 64 bits.
hbmk2 xxx -comp=mingw
hbmk2 xxx -comp=mingw64

Se os HBPs da HMG estiverem no estilo Harbour... também pode deixar a LIB pronta para os dois casos.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor JoséQuintas » 21 Dez 2018 12:54

Tem uma coisa importante aí que esqueci:

Isso no HBMK2 controla a compilação de PRGs... que são convertidos pra C.
O que vém na LIB em C.... depende do fonte C da LIB estar preparado pra isso.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor NiltonGM » 21 Dez 2018 12:58

Descobri que estava faltando a pasta 'HARBOUR-64', então instalei o Harbour-64 que baixei pelo arquivo 'HARBOUR-64 (nightly 2016-04-20).rar', espero que este seja a última versão pois está com a data de 20-04/2016.
ao rodar o _BuildAllLib64.bat, agora dá outro erro:
Nenhum compildador C suportado foi encontrado em seu PATH.
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor NiltonGM » 21 Dez 2018 13:06

Agora que vc falou Zeh, vi que nem a pasta "MinGW-64" eu tinha. Já descompactei esta pasta lá e vamos ver no que dá...
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor JoséQuintas » 21 Dez 2018 13:27

A instalação do mingw que já usei e uso

mingw64.png


posix-sjlj, era recomendação do Harbour 3.4

x86_64 significa que é para 32 e 64 bits, os dois juntos no mesmo download.

E 50MB pra baixar... é refresco... rs
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor NiltonGM » 21 Dez 2018 13:53

Funcionou a compilação:
Recompilei minha LIBs particulares também após rodar o _BuildAllLib64.bat, testei pela IDE, é só clicar em Build e escolher 64-Bits... e a compilação fluiu para "Building in 64 Bits", porem ao linkar para gerar o executável deu erro.
Tenho duas LIBs sistrom_mysql e sistrom_aux, ao recompila-las, são criado dois arquivos na pasta LIB-64:
libsistrom_mysql.a
libsistrom_aux.a

Se deixo como está, dá o erro que as libs são incompatível e depois diz que não pode encontrar as libs:
Diz que encontrou "lib-64\libsistrom_mysql.a" mas o procurando (search) foi "lsistrom.mysql"

C:/hmg.3.4.4/mingw-64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/hmg.3.4.4/lib-64\libsistrom_mysql.a when searching for -lsistrom_mysql
C:/hmg.3.4.4/mingw-64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsistrom_mysql
C:/hmg.3.4.4/mingw-64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/hmg.3.4.4/lib-64\libsistrom_aux.a when searching for -lsistrom_aux
C:/hmg.3.4.4/mingw-64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsistrom_aux

Observe que nesse erro ele troca o prefixo lib por apelas l (de libsistrom_mysql.a para lsistrom.mysql.a)
Se eu renomeio as lib trocando o prefixo 'lib' apra 'l', aí da o erro:
C:/hmg.3.4.4/mingw-64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsistrom_mysql
C:/hmg.3.4.4/mingw-64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsistrom_aux
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor NiltonGM » 21 Dez 2018 14:09

Zeh,
Resolvido o problema, era path mesmo dentro do bat da minha lib...
Agora estou com outro problema mais sério, a lib mysql não foi criada na pasta lib-64, só existe na pasta lib... tenho q achar o fonte e re-compilar em 64 essa lib.
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor NiltonGM » 21 Dez 2018 15:57

Na linkedição em 64 Bits, está faltando as funções abaixo, eu creio que essas funções pertence a lib libmySQL.a, pois na pasta LIB-64 não tem essa lib, só na LIB (32BITS);
Veja a dica na Linkedição:

hbmk2: Dica: Instale o pacote hbmysql e adicione as opções 'hbmysql.hbc'
faltando nas funções: mysql_escape_string(), mysql_error(),
mysql_affected_rows(), TMySQLServer()

Onde eu consigo esse pacote "hbmysql"?

Observação: Na compilação em 32 Bits, eu apenas uso a DLL "libmysql.dll" na pasta do sistema e as funções estão lá....
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor JoséQuintas » 21 Dez 2018 18:22

Uma observação sobre a mensagem de erro:

cannot find -lsistrom_mysql


Aí está mostrando qual foi o comando que pediu a lib, foi o -l seguido do nome da lib.
Pelo menos pra mingw, é adicionado o prefixo LIB, não sei porque diferente, mas é assim - no msvc, bcc, etc. não tem esse prefixo.

E outra observação:
No Harbour, quando é 32 bits vai pra lib/win/mingw e quando é 64 bits vai pra lib/win/mingw64.
O mesmo em msvc e bcc - lib/win/msvc64 e lib/win/bcc64.
Por isso coloco no HBP de criaçao das libs: lib/${hb_plat}/${hb_comp} . Isso deixa separado cada lib de cada versão 32/64, e pra cada compilador, podendo manter tudo pronto na máquina sem misturar.

tente gerar pela contribuição, está em contrib/hbmysql, talvez pelos fontes.
hbmk2 *.hbp -comp=mingw64

Provavelmente vai avisar se faltar alguma coisa, talvez copiar a DLL do MySQL pra dentro da pasta contrib/hbmysql
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor JoséQuintas » 21 Dez 2018 18:28

Não uso essa LIB.
Aqui o que aparece:

hbmysql.png


É um download "extra", que contém no mínimo esse arquivo .h que é o equivalente ao #include ".ch" mas pra linguagem C.
Por ser proprietário do MySQL, e provavelmente dependente de versão, não vém com Harbour.

Quem usa essa LIB deve saber detalhes sobre o que exatamente baixar.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como compilar em 64-Bits HMG 3.4.4

Mensagempor mustafa » 22 Dez 2018 11:53

Hola NiltonGM :
Mira haber si te puede servir
http://www.hmgforum.com/viewtopic.php?f ... a&start=90

Saludos
Mustafa
Avatar de usuário

mustafa
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 02 Jun 2018 09:24
Cidade/Estado: Alicante/España
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Próximo



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 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