Projeto MiniGui - Biblioteca visual para Harbour/xHarbour
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!
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
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.
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
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.
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.
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.
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á...
21 Dez 2018 13:27
A instalação do mingw que já usei e uso
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
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
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.
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á....
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
21 Dez 2018 18:28
Não uso essa LIB.
Aqui o que aparece:
É 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.
22 Dez 2018 11:53
Hola NiltonGM :
Mira haber si te puede servir
http://www.hmgforum.com/viewtopic.php?f ... a&start=90Saludos
Mustafa
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.