Página 1 de 1

Problema execução no Windows 7

Enviado: 18 Mar 2019 21:28
por asimoes
Recentemente fiz uma atualização do msys64, a compilação do harbour é para LLVM/CLANG versão 7.01, a compilação vai até o fim sem erro.
Gerando o executável de um sistema meu ele roda sem problemas no windows 10 (64) no windows 7 32 ou 64 apresenta este erro de execução:
Algum de vocês já passou por este problema ?
2019-03-18 21_17_34-Window.png

Problema execução no Windows 7

Enviado: 20 Mar 2019 08:09
por Itamar M. Lins Jr.
Olá!


2019-03-19 18:12 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* config/win/global.mk
* utils/hbmk2/hbmk2.prg
! moved winmm library before kernel32. This fixes Harbour compile and
application run on Win7 and previous Windows versions if latest MinGW
is used.
    ; Win8+ exports timeGetTime() from both kernel32.dll and winmm.dll.
    Previous windows version exports this function only from winmm.dll.
    See discussion at https://github.com/msys2/MINGW-packages/issues/4984

    * utils/hbmk2/hbmk2.prg
    ! Fixed dependency detection. Setting HB_WITH_<package>=local was
    ignored
    if packages were detected using pkg-config

    * contrib/hbexpat/3rd/expat/siphash.h
    ! fixed compile error for BCC <= 5.6

    Problema execução no Windows 7

    Enviado: 20 Mar 2019 15:24
    por asimoes
    Itamar,

    Obrigado pela informação, este fiz é para as 2 versões 3.4 e 3.2 ?

    Problema execução no Windows 7

    Enviado: 20 Mar 2019 20:55
    por asimoes
    Vi que o Fix foi para o harbour 3.2, como a 3.4 está congelada, só pode ser compilado com uma versão mais antiga do MSYS.
    Ainda bem que eu tinha salvo a pasta mingw32 antes de atualizar o msys64. Agora temos um problema com a versão 3.4 ?

    Problema execução no Windows 7

    Enviado: 20 Mar 2019 23:43
    por JoséQuintas
    asimoes escreveu:. Agora temos um problema com a versão 3.4 ?
    Foi através de informação do Harbour 3.4 que isso foi ajustado no 3.2.
    Na prática, o 3.4 congelado já estava na frente.
    E trata-se de bug no compilador C, provavelmente nesse MSYS.
    Se tudo está normal, continuará normal.

    Problema execução no Windows 7

    Enviado: 21 Mar 2019 07:10
    por asimoes
    JoséQuintas escreveu:E trata-se de bug no compilador C, provavelmente nesse MSYS.
    Ou a falta de algum ajuste como foi feito na 3.2, o MSYS é um facilitador para baixar versões atualizadas do CLANG e GCC,
    então se nada for feito na 3.4, vai ter que usar versão mais antiga do GCC/CLANG ou voltar para a 3.2 , mas o CLANG do msys da erro na compilação da 3.2, somente o GCC 8.10 compila.

    O Harbour 3.4 na documentação diz que o MSYS é o oficial para gerar a lib/bin, posso estar enganado, mas foram recomendações do Viktor, usar CLANG como compilador oficial que é distribuído pelo MSYS.

    Esse problema do meu primeiro post só ocorre no windows 7

    Problema execução no Windows 7

    Enviado: 26 Mar 2019 20:48
    por asimoes
    Seguindo o que foi feito na 3.2 core

    Código: Selecionar todos

    2019-03-19 18:12 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
       * utils/hbmk2/hbmk2.prg
        ! moved winmm library before kernel32. This fixes Harbour compile and
          application run on Win7 and previous Windows versions if latest MinGW 
          is used.
        ; Win8+ exports timeGetTime() from both kernel32.dll and winmm.dll.
          Previous windows version exports this function only from winmm.dll.
          See discussion at https://github.com/msys2/MINGW-packages/issues/4984 
    
    Modifiquei o fonte hbmk2.prg da 3.4 fork

    Código: Selecionar todos

          /* NOTE: Some targets (watcom, pocc) need kernel32 explicitly. */
          //l_aLIBSYSCORE := { "kernel32", "user32", "gdi32", "advapi32", "ws2_32", "iphlpapi" }
          l_aLIBSYSCORE := { "winmm", "kernel32", "user32", "gdi32", "advapi32", "ws2_32", "iphlpapi" }
          //l_aLIBSYSMISC := { "winspool", "comctl32", "comdlg32", "shell32", "uuid", "ole32", "oleaut32", "mpr", "winmm", "mapi32", "imm32", "msimg32", "wininet" }
          l_aLIBSYSMISC := { "winspool", "comctl32", "comdlg32", "shell32", "uuid", "ole32", "oleaut32", "mpr", "mapi32", "imm32", "msimg32", "wininet" }
    
    Amanhã vou saber se deu certo.

    Problema execução no Windows 7

    Enviado: 26 Mar 2019 21:44
    por JoséQuintas
    Sobre a mudança...

    No Harbour-users chegou a circular mensagem de pelo menos uma pessoa com problema após essa alteração.
    O problema é que mingw tem LIBs com mesmo nome que algumas do Harbour, e alterando a ordem de linquedição entram as LIBs erradas.

    Problema execução no Windows 7

    Enviado: 26 Mar 2019 22:25
    por asimoes
    JoséQuintas escreveu:Sobre a mudança...

    No Harbour-users chegou a circular mensagem de pelo menos uma pessoa com problema após essa alteração.
    O problema é que mingw tem LIBs com mesmo nome que algumas do Harbour, e alterando a ordem de linquedição entram as LIBs erradas.
    Vou testar amanhã, se rodar o executável no w7, é isso, resolveu, se não, deve ter uma reversão na 3.2
    Se não der certo, fude.., vamos ficar congelados na 3.4 com msys de 16/12/18, é o risco

    Problema execução no Windows 7

    Enviado: 26 Mar 2019 22:30
    por asimoes
    Lembrando, que compiladores tem bug também, convém sempre estar atualizado, desde que o hb 3.2 e 3.4 aceitem novas versões do compilador.

    Problema execução no Windows 7

    Enviado: 27 Mar 2019 09:08
    por asimoes
    A modificação funcionou!