Página 2 de 6

Hwgui em 64bits

Enviado: 15 Mai 2020 15:43
por asimoes
Itamar M. Lins Jr. escreveu:Instalei LetoDbf, freimage, openssl, curl e Hwgui todos em 64 bits. Já está em produção em uma loja.
Como você compila a openssl ?

Hwgui em 64bits

Enviado: 15 Mai 2020 16:35
por Itamar M. Lins Jr.
Ola!
Coloquei mais acima, o Viktor atualizou lá no GIT os links. Tem para 32/64. OpenSSL, Curl...
Pelo que percebi, salvo engano a lib .a é extraída e linkada junto com a Hwgui, não precisou mais de DLL. Ficou até mais rápido no envio de email.

Saudações,
Itamar M. Lins Jr.

Hwgui em 64bits

Enviado: 15 Mai 2020 17:03
por JoséQuintas
Vejam se ajuda:

"{mingw}CFLAGS=" + ;
" -Wno-implicit-fallthrough" + ;
" -Wno-cast-function-type" + ;
" -Wno-misleading-indentation", ;

Pelo que entendi.
../../../../../contrib/hbwin/win_proxyc.c:158:53: warning: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'BOOL (*)(HB_WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *)' {aka 'int (*)(struct <anonymous> *)'} [-Wcast-function-type]
No final aparece -Wcast-function-type
Essa é a checagem que causou a mensagem de erro.
Se não der pra alterar o fonte, é desabilitar a checagem.

-Wno-cast-function-type

Isso se faz no CFLAGS

Hwgui em 64bits

Enviado: 15 Mai 2020 19:04
por asimoes
Para mim continua dando esse erro :

Código: Selecionar todos

Compilando o programa CLANG...
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x30a): undefined reference to `EVP_rc5_32_12_16_cbc'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x318): undefined reference to `EVP_rc5_32_12_16_ecb'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x326): undefined reference to `EVP_rc5_32_12_16_cfb64'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x334): undefined reference to `EVP_rc5_32_12_16_cfb64'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x342): undefined reference to `EVP_rc5_32_12_16_ofb'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x955): undefined reference to `EVP_rc5_32_12_16_cfb64'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0xa0f): undefined reference to `EVP_rc5_32_12_16_ecb'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0xa18): undefined reference to `EVP_rc5_32_12_16_cbc'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0xb0b): undefined reference to `EVP_rc5_32_12_16_ofb'
collect2.exe: error: ld returned 1 exit status
hbmk2[asaclang]: Erro: Executando linkeditor. 1
Pressione qualquer tecla para continuar. . .
Estou compilando com o GCC 64 do MSYS, já estava dando esse erro com a versão 9.3 a atualização de hoje o GCC é 10.0

Hwgui em 64bits

Enviado: 15 Mai 2020 19:29
por Itamar M. Lins Jr.
Ola!

Código: Selecionar todos

C:\devl\hb32-code>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/msys32/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.3.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-9.3.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++ --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts=yes --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --enable-plugin --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev1, Built by MSYS2 project' --with-bugurl=https://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld
Thread model: posix
gcc version 9.3.0 (Rev1, Built by MSYS2 project)

Código: Selecionar todos

C:\fontes\teste>set hb
HB_STATIC_CURL=yes
HB_STATIC_OPENSSL=yes
HB_WITH_CURL=C:\curl-7.70.0-win64-mingw\include
HB_WITH_FREEIMAGE=C:\FreeImage\Dist\x64
HB_WITH_MYSQL=C:\mysql-8.0.19-winx64\include
HB_WITH_OPENSSL=C:\openssl-1.1.1g-win64-mingw\include
Pedaço do PATH: C:\HB32\BIN;C:\msys32\mingw64\bin;

Código: Selecionar todos

set HB_INSTALL_PREFIX=c:\hb32
Só isso ai. Mais nada.

Código: Selecionar todos

cd \devl\hb32-code\
>mingw32-make install
Saudações,
Itamar M. Lins Jr.

Hwgui em 64bits

Enviado: 15 Mai 2020 20:29
por asimoes
Modifiquei a minha bat pra fazer a compilação como você faz

Código: Selecionar todos

@echo off
SET PATH=C:\Program Files\Git\bin;C:\msys64\mingw64\bin;C:\msys64\usr\bin;
SET HB_COMPILER=mingw64
SET HB_INSTALL_PREFIX=C:\HB32GCC64
SET HB_STATIC_OPENSSL=yes
SET HB_WITH_FREEIMAGE=D:\FreeImage\Dist\x64
SET HB_WITH_OPENSSL=D:\OPENSSL\openssl-1.1.1g-win64-mingw\include
@echo Compilando Harbour 32 fork GCC 64 MSYS2
SET DATACOM=%date:~0,2%/%date:~3,2%/%date:~-2%
SET STARTTIME=%time:~0,2%:%time:~3,2%:%time:~6,2%
if not exist logmingw32forkclang.log @echo Compilação Mingw 32 Fork CLANG >> logmingw32forkclang.log
@echo ------------------------------------------ >> logmingw32forkclang.log
@echo Compilação GERAL CLANG >> logmingw32forkclang.log
@echo ------------------------ >> logmingw32forkclang.log
@echo Data   : %DATACOM%       >> logmingw32forkclang.log
@echo Inicio : %STARTTIME%     >> logmingw32forkclang.log
mingw32-make clean instal
SET ENDTIME=%TIME%
SET ENDTIME=%time:~0,2%:%time:~3,2%:%time:~6,2%

    for /F "tokens=1-4 delims=:.," %%a in ("%STARTTIME%") do (
       set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
    )

    for /F "tokens=1-4 delims=:.," %%a in ("%ENDTIME%") do (
       set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
    )

    rem Calculate the elapsed time by subtracting values
    set /A elapsed=end-start
    set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
    if %hh% lss 10 set hh=0%hh%
    if %mm% lss 10 set mm=0%mm%
    if %ss% lss 10 set ss=0%ss%
    if %cc% lss 10 set cc=0%cc%
    REM SET DURATION=%hh%:%mm%:%ss%,%cc%
    SET DURATION=%hh%:%mm%:%ss%
    @echo Fim    : %ENDTIME%       >> logmingw32forkclang.log
    @echo          --------------- >> logmingw32forkclang.log
    @echo Tempo  : %DURATION%      >> logmingw32forkclang.log

@echo Fim da compilação
@pause

Hwgui em 64bits

Enviado: 15 Mai 2020 20:58
por asimoes
Continua falhando:

Código: Selecionar todos

Generating C source output to 'OBJCLANGDES\PA440300.c'... Done.
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x30a): undefined reference to `EVP_rc5_32_12_16_cbc'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x318): undefined reference to `EVP_rc5_32_12_16_ecb'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x326): undefined reference to `EVP_rc5_32_12_16_cfb64'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x334): undefined reference to `EVP_rc5_32_12_16_cfb64'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x342): undefined reference to `EVP_rc5_32_12_16_ofb'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0x955): undefined reference to `EVP_rc5_32_12_16_cfb64'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0xa0f): undefined reference to `EVP_rc5_32_12_16_ecb'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0xa18): undefined reference to `EVP_rc5_32_12_16_cbc'
D:/hb32gcc64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/hb32gcc64/lib/win/mingw64/libhbssl.a(evpciph.o):evpciph.c:(.text+0xb0b): undefined reference to `EVP_rc5_32_12_16_ofb'
collect2.exe: error: ld returned 1 exit status
hbmk2[asaclang]: Erro: Executando linkeditor. 1
Pressione qualquer tecla para continuar. . .
Log da compilação do harbour 3.2 64:
logcomp.txt
Log da compilação
(244.61 KiB) Baixado 210 vezes
Minha bat de compilação do harbour:

Código: Selecionar todos

@echo off
SET PATH=C:\Program Files\Git\bin;C:\msys64\mingw64\bin;C:\msys64\usr\bin;
rem SET HB_COMPILER=mingw64
SET HB_INSTALL_PREFIX=C:\HB32GCC64
SET HB_STATIC_OPENSSL=yes
SET HB_WITH_FREEIMAGE=D:\FreeImage\Dist\x64
SET HB_WITH_OPENSSL=D:\OPENSSL\openssl-1.1.1g-win64-mingw\include
@echo Compilando Harbour 32 fork GCC 64 MSYS2
SET DATACOM=%date:~0,2%/%date:~3,2%/%date:~-2%
SET STARTTIME=%time:~0,2%:%time:~3,2%:%time:~6,2%
if not exist logmingw32forkclang.log @echo Compilação Mingw 32 Fork CLANG >> logmingw32forkclang.log
@echo ------------------------------------------ >> logmingw32forkclang.log
@echo Compilação GERAL CLANG >> logmingw32forkclang.log
@echo ------------------------ >> logmingw32forkclang.log
@echo Data   : %DATACOM%       >> logmingw32forkclang.log
@echo Inicio : %STARTTIME%     >> logmingw32forkclang.log
mingw32-make clean install > logcomp.txt 2>&1
SET ENDTIME=%TIME%
SET ENDTIME=%time:~0,2%:%time:~3,2%:%time:~6,2%

    for /F "tokens=1-4 delims=:.," %%a in ("%STARTTIME%") do (
       set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
    )

    for /F "tokens=1-4 delims=:.," %%a in ("%ENDTIME%") do (
       set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
    )

    rem Calculate the elapsed time by subtracting values
    set /A elapsed=end-start
    set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
    if %hh% lss 10 set hh=0%hh%
    if %mm% lss 10 set mm=0%mm%
    if %ss% lss 10 set ss=0%ss%
    if %cc% lss 10 set cc=0%cc%
    REM SET DURATION=%hh%:%mm%:%ss%,%cc%
    SET DURATION=%hh%:%mm%:%ss%
    @echo Fim    : %ENDTIME%       >> logmingw32forkclang.log
    @echo          --------------- >> logmingw32forkclang.log
    @echo Tempo  : %DURATION%      >> logmingw32forkclang.log


@echo Fim da compilação
@pause

Hwgui em 64bits

Enviado: 15 Mai 2020 21:06
por asimoes
Outra coisa a lib Freeimage não foi gerada:

Código: Selecionar todos

hbmk2: Processando script local: hbmk.hbm
hbmk2: Harbour: Compilando módulos...
Harbour 3.2.0dev (r2004201301)
Copyright (c) 1999-2020, https://harbour.github.io/
Compiling 'BROWSECOLOR.PRG'...
Lines 4938, Functions/Procedures 6
Generating C source output to 'OBJMINGW\BROWSECOLOR.c'... Done.
Compiling 'PROGRESSBAR.PRG'...
Lines 5448, Functions/Procedures 6
Generating C source output to 'OBJMINGW\PROGRESSBAR.c'... Done.
hbmk2: Compilando recursos...
hbmk2: Compilando...
hbmk2: Linkando... BrowseColor.exe
D:/HB32GCC64/comp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lfreeimage
Estou usando a versão: FreeImage3180Win32Win64

Vou voltar para a versão 3.170 de 2015 para ver se é isso.

Hwgui em 64bits

Enviado: 15 Mai 2020 21:15
por Itamar M. Lins Jr.
Ola!
Pegou o OpenSSL onde ?
O erro é esse ai.

Código: Selecionar todos

As explained earlier in the thread, if you want to use it,
it needs to be compiled in.  Recompile and reinstall OpenSSL.
You can turn on/off ciphers (such as using --no-idea at configure
time) so make sure you include the ciphers you require.  I'd
suggest using >=0.9.7 which includes AES, just in case you need
it down the road.

Or you could pick different ciphers to use and give up on RC5.
Saudações,
Itamar M. Lins Jr.

Hwgui em 64bits

Enviado: 15 Mai 2020 21:34
por asimoes
O Harbour 2.3 a Freeimage só compila com a versão 3.17 de 2015, o que suspeitava.

Hwgui em 64bits

Enviado: 15 Mai 2020 23:04
por Itamar M. Lins Jr.
Ola!
O Harbour 2.3 a Freeimage só compila com a versão 3.17 de 2015, o que suspeitava.
Hb 32 quis dizer...

Aqui tá ok, com a ultima versão da freeimage
https://sourceforge.net/projects/freeim ... irror=ufpr
Linha final que corrigir para pegar, importar a lib .a da DLL hbfimage.hbp na pasra contrib

Código: Selecionar todos

-depimplibs=freeimage:/freeimage/Dist/x64/FreeImage.dll
>hbmk2 hbfimage.hbp

Código: Selecionar todos

C:\devl\hb32-code\contrib\hbfimage>hbmk2 hbfimage.hbp
hbmk2: Dependência 'freeimage' encontrado: c:\FreeImage\Dist\x64
hbmk2: Encontrado COMF .lib com o mesmo nome, voltando a usá-la em vez da .dll
       .
hbmk2: Biblioteca de importação criada: libFreeImage.a <=
       \freeimage\Dist\x64\FreeImage.dll
hbmk2: Alvo atualizado: libhbfimage.a
>copy *.a c:\HB32\lib\win\mingw64

Saudações,
Itamar M. Lins Jr.

Hwgui em 64bits

Enviado: 15 Mai 2020 23:17
por asimoes
Não entendi ainda que mer**** acontece,

hbssl preciso disso porque uso gmail:

#if ! defined( __HBSCRIPT__HBSHELL )
REQUEST __HBEXTERN__HBSSL__
#endif

IF ! tip_SSL()
RETURN Nil
ENDIF

tip_MailSend()

No harbour 3.4 32 bits funciona muito bem.

Hwgui em 64bits

Enviado: 15 Mai 2020 23:28
por Itamar M. Lins Jr.
Ola!
hbssl preciso disso porque uso gmail
Pelo pouco que entendo, isso ai é para chamar no hbrun!

Código: Selecionar todos

#if ! defined( __HBSCRIPT__HBSHELL )
Eu uso gmail, e mando o PDF e XML anexando ao email do cliente e está funcionando.
Meu arquivo para linkar as bibliotecas é esse, hbmk.hbm

Código: Selecionar todos

hbtip.hbc
hbssl.hbc
sddodbc.hbc
#hbcrypto.hbc
hbct.hbc
hbfimage.hbc
hbnf.hbc
hbxpp.hbc
hbwin.hbc
xhb.hbc
-mt
#-w0 -es1

#-u+simpleio.ch
Saudações,
Itamar M. Lins Jr

Hwgui em 64bits

Enviado: 15 Mai 2020 23:41
por Itamar M. Lins Jr.
Ola!
Aqui está assim:

Código: Selecionar todos

#require "hbssl"
#require "hbtip"
REQUEST __HBEXTERN__HBSSL__

******************************************************
Function Email(aArqui,cSubject,cBody,cEmail,cBodyFile)
******************************************************
*
*
LOCAL cHost, lRet := .F., nPort, lSTARTTLS := .F.
IF !tip_SSL()
   hwg_msgstop( "Erro: Ative o suporte SSL" )
   RETURN
ENDIF
...
lRet := tip_MailSend( ;
      cHost, ;
      nPort, ; //iif( lSTARTTLS, 587, 465 ), ;
      cFrom, ;
      cTo, ;
      xCC /* CC */, ;
      {} /* BCC */, ;
      cBody , ;
      cSubJect , ;
      aArqui /* attachment */, ;
      cFrom, ;
      cPassword, ;
      "", ;
      NIL /* nPriority */, ;
      NIL /* lRead */, ;
      .T. /* lTrace */, ;
      .F., /*lPopAuth */ ;
      NIL /* lNoAuth */, ;
      NIL /* nTimeOut */, ;
      NIL /* cReplyTo */, ;
      nPort == 465) //! lSTARTTLS )

If lRet
   hwg_Msginfo("Email enviado."+hb_eol()+"Assunto: "+cSubject+hb_eol()+"Endereço: "+cTo)
Else
   hwg_Msgexclamation("Falha enviando email via TIP_MAILSEND")
EndIf
Return lRet
Saudações,
Itamar M. Lins Jr.

Hwgui em 64bits

Enviado: 16 Mai 2020 11:18
por asimoes
Itamar M. Lins Jr. escreveu:Ola!
Pegou o OpenSSL onde ?
O erro é esse ai.
Baixo sempre daqui do Viktor: https://bintray.com/vszakats/generic/openssl