Como compilar em 64-Bits HMG 3.4.4

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Como compilar em 64-Bits HMG 3.4.4

Mensagem por NiltonGM »

Grato Mustafa!
Nilton Medeiros
nilton@sistrom.com.br
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Como compilar HMG 3.4.4 usando .BAT

Mensagem por microvolution »

boa noite nobres professores!
Não sei se é o tópico correto, mas, evitar de criar mais um desnecessariamente...
vejam o meu problema.
eu compilo via HMG 3.4.4.... mas toda vez que tendo criar um .BAT me esbarro nalgumas coisas...
já consegui bastante avanço...
o erro atual que não consegui entender é o seguinte no código do log abaixo:

Código: Selecionar todos

c:/hb34/comp/mingw32/bin/../lib/gcc/i686-w64-mingw32/5.2.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lhbmysql
c:/hb34/comp/mingw32/bin/../lib/gcc/i686-w64-mingw32/5.2.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lhbfimage
c:/hb34/comp/mingw32/bin/../lib/gcc/i686-w64-mingw32/5.2.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lhbpgsql
c:/hb34/comp/mingw32/bin/../lib/gcc/i686-w64-mingw32/5.2.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lsddmy
collect2.exe: error: ld returned 1 exit status
hbmk2 [DEMObat]: Erro: Executando linkeditor. 1
eu não coloquei essas libs e nem uso MYSQL, como descubro qual dos meus PRGs está chamando essas 4 LIBs desconhecidas por mim?

obs.:
1) não estou compilando com 64 bits, apesar de estar numa máquina com w10 64;
2) retirei a criação do -oNOME.EXE pois estava dando a mensagem de erro: no such file or directory;
3) na compilação via IDE/HMG (F5) não dá esse erro.
4) só uso a IDE/HMG pra facilitar a inclusão das LIBs, edição dos PRGs e compilação/linkedição... mais nada. Não a uso para criação de forms.
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Como compilar em 64-Bits HMG 3.4.4

Mensagem por NiltonGM »

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

Saludos
Mustafa
Mustafa, ao compilar em 64 bits, da erro, pois não encontra a função MySQL_Escape_String. Veja o erro que ocorre:

Código: Selecionar todos

hbmk2: Linkando... eMailCTe.exe
.hbmk/win/mingw64/funcoes.o:funcoes.c:(.data+0x930): undefined reference to `HB_FUN_MYSQL_ESCAPE_STRING'
.hbmk/win/mingw64/MySQL_Conect.o:MySQL_Conect.c:(.data+0xf0): undefined reference to `HB_FUN_TMYSQLSERVER'
collect2.exe: error: ld returned 1 exit status
hbmk2[eMailCTe]: Erro: Executando linkeditor. 1
gcc.exe .hbmk/win/mingw64/Main.o .hbmk/win/mingw64/class_tms.o .hbmk/win/mingw64/envia_email.o .hbmk/win/mingw64/funcoes.o .hbmk/win/mingw64/monitoraerros.o .hbmk/win/mingw64/monitoramail.o .hbmk/win/mingw64/MySQL_Conect.o .hbmk/win/mingw64/MySQL_Desconect.o .hbmk/win/mingw64/MySQL_ExecQuery.o .hbmk/win/mingw64/Opcoes.o .hbmk/win/mingw64/RegistraBD.o .hbmk/win/mingw64/UpLoadEvents.o .hbmk/win/mingw64/Util_MySendMail.o .hbmk/win/mingw64/_hbmkaut_Main.o P:/Harbours/apoio_tms/CTeMail/_temp.o    -pthread  -static-libgcc  -static-libstdc++  -static -lpthread -mwindows -Wl,--start-group -l"hmg-64" -l"crypt-64" -l"edit-64" -l"editex-64" -l"graph-64" -l"ini-64" -l"report-64" -l"hfcl-64" -lmsvfw32 -lvfw32 -l"hbvpdf-64" -lhbct -lhbwin -lhbmzip -lminizip -lhbmemio -lhbmisc -lhbtip -lsqlite3 -lhbsqlit3 -lsddodbc -lrddsql -lhbodbc -lodbc32 -lhbhpdf -lhbnetio -lxhb -lpng -llibhpdf -lhbzebra -lsistrom_aux -lhbextern -lhbdebug -lhbvmmt -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtpca -lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainwin -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib   -Wl,--end-group -oeMailCTe.exe  -L"C:/hmg.3.4.4/harbour-64/lib/win/mingw64" -L"C:/hmg.3.4.4/lib-64"

hbmk2: Dica: Instale o pacote hbmysql e adicione as op��es 'hbmysql.hbc'
       faltando nas fun��es: TMySQLServer(), mysql_escape_string()
A dica pede para que eu instale o pacote hbmysql e adicione as opções 'hbmysql.hbc'.... Não sei como instalar esse pacote. Ao compilar em 32 bits não dá esse erro, pois tudo que tenho que fazer é apenas colocar o arquivo dll 'libmysql.dll' na pasta raiz do sistema que está sendo compilado.

Grato.
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
JoséQuintas
Administrador
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

Mensagem por JoséQuintas »

A LIB pra MySQL, assim como as libs curl e ssl e outras, dependem de arquivos que NÃO vém no Harbour.
Elas contém direitos autorais, e dependem de versões, por isso não vém junto.
Essas são OPCIONAIS, o Harbour SÓ gera se existir tudo que precisa pra elas.
E só vai dar falta se tentar usar alguma função delas.

QUALQUER Harbour gera pra qualquer compilador, seja 32 ou 64 bits.
MAS.... precisa das LIBs do Harbour de cada compilador.

harbour\\lib\win\bcc
harbour\\lib\win\bcc64
harbour\\lib\win\mingw
harbour\\lib\win\mingw64
etc.

Se tiver todas, gera pra qualquer coisa.
Por isso aí funciona 32 bits e dá falta em 64 bits, porque a pasta \lib\mingw tem tudo, mas a pasta \lib\mingw64 está incompleta.
E a falta aparece somente na linquedição, quando precisa das LIBs.

Qualquer um pode fazer um teste simples em sua máquina, testando outros compiladores:

hbmk2 projeto.hbp -comp=msvc
hbmk2 projeto.hbp -comp=bcc
hbmk2 projeto.hbp -comp=mingw
hbmk2 projeto.hbp -comp=mingw64

A "compilação" com Harbour acontece normal (o Harbour só transforma em C).
Vai dar erro mesmo, é na hora de usar o compilador C, ou a hora de linqueditar.
Ou vão faltar os EXEs do compilador C, ou as LIBs Harbour/C
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/
Responder