Como compilar em 64-Bits HMG 3.4.4
Moderador: Moderadores
Como compilar em 64-Bits HMG 3.4.4
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!
"'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
nilton@sistrom.com.br
Como compilar em 64-Bits HMG 3.4.4
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
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
Marcelo Neves
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como compilar em 64-Bits HMG 3.4.4
Isso com certeza.NiltonGM escreveu: Será que tenho que re-compilar o HMG totalmente em 64 Bits para gerar executáveis de 64 Bits?
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 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/
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/
Como compilar em 64-Bits HMG 3.4.4
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
'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
nilton@sistrom.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como compilar em 64-Bits HMG 3.4.4
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.
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 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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como compilar em 64-Bits HMG 3.4.4
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.
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 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/
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/
Como compilar em 64-Bits HMG 3.4.4
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.
ao rodar o _BuildAllLib64.bat, agora dá outro erro:
Nenhum compildador C suportado foi encontrado em seu PATH.
Nilton Medeiros
nilton@sistrom.com.br
nilton@sistrom.com.br
Como compilar em 64-Bits HMG 3.4.4
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
nilton@sistrom.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como compilar em 64-Bits HMG 3.4.4
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
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 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/
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/
Como compilar em 64-Bits HMG 3.4.4
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
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
nilton@sistrom.com.br
Como compilar em 64-Bits HMG 3.4.4
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.
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
nilton@sistrom.com.br
Como compilar em 64-Bits HMG 3.4.4
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á....
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
nilton@sistrom.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como compilar em 64-Bits HMG 3.4.4
Uma observação sobre a mensagem de erro:
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
Aí está mostrando qual foi o comando que pediu a lib, foi o -l seguido do nome da lib.cannot find -lsistrom_mysql
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 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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como compilar em 64-Bits HMG 3.4.4
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.
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.
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/
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/
Como compilar em 64-Bits HMG 3.4.4
Hola NiltonGM :
Mira haber si te puede servir
http://www.hmgforum.com/viewtopic.php?f ... a&start=90
Saludos
Mustafa
Mira haber si te puede servir
http://www.hmgforum.com/viewtopic.php?f ... a&start=90
Saludos
Mustafa


