Clipper On Line • Ver Tópico - Como compilar em 64-Bits HMG 3.4.4
Mudar para estilo Clássico
Projeto MiniGui - Biblioteca visual para Harbour/xHarbour
Postar uma resposta

Como compilar em 64-Bits HMG 3.4.4

23 Fev 2019 13:56

Grato Mustafa!

Como compilar HMG 3.4.4 usando .BAT

15 Mar 2020 21:44

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:
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.

Como compilar em 64-Bits HMG 3.4.4

06 Jun 2020 12:21

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:
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.

Como compilar em 64-Bits HMG 3.4.4

06 Jun 2020 14:13

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
Postar uma resposta