Erro compilando Qt 4.8 - Linux / Windows 7



  • Compilando a Qt 4.8 no Kubuntu a compilação terminou com o seguinte erro:

    make[2]: Saindo do diretório /home/rodolfo/Qt/qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/WebKit/qt' make[2]: Entrando no diretório/home/rodolfo/Qt/qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/WebKit/qt'
    make[2]: *** Sem regra para processar o alvo ../../WebCore/release/libwebcore.a', necessário por../../../../../../lib/libQtWebKit.so.4.9.0'. Pare.
    make[2]: Saindo do diretório /home/rodolfo/Qt/qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/WebKit/qt' make[1]: ** [sub-WebKit-qt-QtWebKit-pro-install_subtargets-ordered] Erro 2 make[1]: Saindo do diretório/home/rodolfo/Qt/qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source'
    make: ** [sub-webkit-install_subtargets-ordered] Erro 2

    Ao rodar o configure verifiquei bem o resultado, todos os módulos foram ativados, inclusive o webkit, instalei todas as dependências possíveis,também procurei alguma referencia ao erro na internet, mas não achei nada, alguem sabe o que pode ser?

    EDIÇÃO (anselmolsm): Título alterado pois também estamos falando de build no Windows 7.



  • Olá,

    Quais parâmetros você usou no configure?



  • Alguma dependencia do modulo webkit, veja:

    http://doc.qt.nokia.com/main-snapshot/install-x11.html
    http://doc.qt.nokia.com/main-snapshot/configure-options.html

    Se voce esta usando debian, pode resolver as depends executando:

    sudo apt-get install libx11-dev libxau-dev libxaw7-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev
    sudo apt-get install libxext-dev libxfixes-dev libxfont-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev
    sudo apt-get install libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev
    sudo apt-get install libglib2.0-dev
    sudo apt-get install libssl-dev
    sudo apt-get install libgtk2.0-dev
    sudo apt-get install libcups2-dev
    sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
    sudo apt-get install libgstreamer0.10-dev

    Abaixo uma lista ( enorme ) das dependencias para compilar com todos os modulos:

    comerr-dev (2.1-1.41.12-1ubuntu2)
    debhelper (8.0.0ubuntu1)
    gettext (0.18.1.1-1ubuntu2)
    html2text (1.3.2a-15)
    intltool-debian (0.35.0+20060710.1)
    krb5-multidev (1.8.1+dfsg-5ubuntu0.1)
    libatk1.0-dev (1.32.0-0ubuntu1)
    libcairo-gobject2 (1.10.0-1ubuntu3)
    libcairo2-dev (1.10.0-1ubuntu3)
    libcups2-dev (1.4.4-6ubuntu2.2)
    libdrm-dev (2.4.21-1ubuntu2.1)
    libexpat1-dev (2.0.1-7ubuntu1)
    libfontconfig1-dev (2.8.0-2ubuntu1)
    libfontenc-dev (1:1.0.5-2)
    libfreetype6-dev (2.4.2-2ubuntu0.1)
    libgcrypt11-dev (1.4.5-2ubuntu1)
    libgdk-pixbuf2.0-dev (2.22.0-0ubuntu1)
    libgl1-mesa-dev (7.9~git20100924-0ubuntu2)
    libglib2.0-bin (2.26.0-0ubuntu1)
    libglib2.0-dev (2.26.0-0ubuntu1)
    libglib2.0-doc (2.26.0-0ubuntu1)
    libglibmm-2.4-dev (2.25.5-0ubuntu1)
    libglu1-mesa-dev (7.9~git20100924-0ubuntu2)
    libgnutls-dev (2.8.6-1)
    libgpg-error-dev (1.6-1ubuntu2)
    libgssrpc4 (1.8.1+dfsg-5ubuntu0.1)
    libgstreamer-plugins-base0.10-dev (0.10.30-2)
    libgstreamer0.10-dev (0.10.30-1build2)
    libgstreamermm-0.10-2 (0.10.6-1)
    libgstreamermm-0.10-dev (0.10.6-1)
    libgtk2.0-dev (2.22.0-0ubuntu1)
    libice-dev (2:1.0.6-1)
    libkadm5clnt-mit7 (1.8.1+dfsg-5ubuntu0.1)
    libkadm5srv-mit7 (1.8.1+dfsg-5ubuntu0.1)
    libkdb5-4 (1.8.1+dfsg-5ubuntu0.1)
    libkms1 (2.4.21-1ubuntu2.1)
    libkrb5-dev (1.8.1+dfsg-5ubuntu0.1)
    libmail-sendmail-perl (0.79.16-1)
    libpango1.0-dev (1.28.1-1ubuntu3)
    libpixman-1-dev (0.18.4-1)
    libpng12-dev (1.2.44-1)
    libpthread-stubs0 (0.3-2)
    libpthread-stubs0-dev (0.3-2)
    libsigc++-2.0-dev (2.2.4.2-1)
    libsm-dev (2:1.1.1-1)
    libssl-dev (0.9.8o-1ubuntu4.2)
    libsys-hostname-long-perl (1.4-2)
    libtasn1-3-dev (2.7-1)
    libunistring0 (0.9.3-1)
    libx11-dev (2:1.3.3-3ubuntu1)
    libxau-dev (1:1.0.6-1)
    libxaw7-dev (2:1.0.7-1)
    libxcb-render0-dev (1.6-1)
    libxcb-shm0-dev (1.6-1)
    libxcb1-dev (1.6-1)
    libxcomposite-dev (1:0.4.2-1)
    libxcursor-dev (1:1.1.10-2)
    libxdamage-dev (1:1.1.3-1)
    libxdmcp-dev (1:1.0.3-2)
    libxext-dev (2:1.1.2-1)
    libxfixes-dev (1:4.0.5-1)
    libxfont-dev (1:1.4.2-1)
    libxfontp1 (1:1.3.4-3)
    libxft-dev (2.1.14-2ubuntu1)
    libxi-dev (2:1.3-4)
    libxinerama-dev (2:1.1-3)
    libxkbfile-dev (1:1.0.6-2)
    libxml++2.6-2 (2.30.0-1)
    libxml++2.6-dev (2.30.0-1)
    libxml2-dev (2.7.7.dfsg-4ubuntu0.1)
    libxmu-dev (2:1.0.5-1)
    libxmu-headers (2:1.0.5-1)
    libxmuu-dev (2:1.0.5-1)
    libxpm-dev (1:3.5.8-1)
    libxrandr-dev (2:1.3.0-3)
    libxrender-dev (1:0.9.6-1)
    libxres-dev (2:1.0.4-1)
    libxss-dev (1:1.2.0-2)
    libxt-dev (1:1.0.7-1)
    libxtst-dev (2:1.1.0-3)
    libxv-dev (2:1.0.5-1)
    libxvmc-dev (2:1.0.5-1ubuntu1)
    mesa-common-dev (7.9~git20100924-0ubuntu2)
    po-debconf (1.0.16)
    x11proto-composite-dev (1:0.4.1-1)
    x11proto-core-dev (7.0.17-1)
    x11proto-damage-dev (1:1.2.0-1)
    x11proto-fixes-dev (1:4.1.1-2)
    x11proto-fonts-dev (2.1.0-1)
    x11proto-input-dev (2.0-2)
    x11proto-kb-dev (1.0.4-1)
    x11proto-randr-dev (1.3.1-1)
    x11proto-record-dev (1.14-2)
    x11proto-render-dev (2:0.11-1)
    x11proto-resource-dev (1.1.0-1)
    x11proto-scrnsaver-dev (1.2.0-2)
    x11proto-video-dev (2.3.0-1)
    x11proto-xext-dev (7.1.1-2)
    x11proto-xinerama-dev (1.2-2)
    xtrans-dev (1.2.5-1)
    zlib1g-dev (1:1.2.3.4.dfsg-3ubuntu1)



  • Rodei o configure somente com o phonon como parâmetro:

    ./configure -v -phonon

    Depois,
    sudo make install, já que é no Kubuntu, não tem "root"

    Quanto as dependencias, a maioria das listadas pelo msx_br eu já tenho instaladas, mas vou conferir.



  • Consegui resolver o problema da compilação seguindo um procedimento baseado num bug relatado numa versão anterior da Qt, a 4.7.0, tive este problema compilando a Qt 4.7 no Linux e segui o procedimento relatado, obtendo exito:

    https://bugreports.qt-project.org/browse/QTBUG-13807

    Só que neste caso da Qt 4.8, meu procedimento foi puramente empírico, já que não a nenhum bug relatado referente a Qt 4.8 no Linux ( mas há no Windows).
    Achei que seguindo um procedimento semelhante poderia dar certo, e deu, posicionei no diretório

    /home/rodolfo/Qt/qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/ já que o erro ocorre em Qt/qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source, digitei:

    sudo make

    Compilou sem erros, depois voltei ao raiz da Qt e digitei sudo make install e continuou a compilação até o fim sem erros.

    Pode ser pura sorte, talvez falte algum parâmetro a mais no configure para que não ocorra este erro, mas sempre compilo a Qt apenas com ./configure -phonon ( até então) sem problemas.
    Quanto as dependências, agradeço a extensa lista do amigo msx_br, mas acredito que qualquer dependência ou pacote faltante é detectado pelo configure, desabilitando o recurso em questão ou abortando a compilação.
    Aproveito para levantar também a questão da compilação no Windows, no meu caso no Win 7 ocorreu um erro relatado em vários blogs relativo a necessidade de ter o pearl instalado, ao rodar o configure no Windows, aparece o erro:

    Perl not found in environment – cannot run syncqt abaixo, relatos deste erro:

    http://labs.qt.nokia.com/2011/12/15/qt-4-8-0-released/

    http://jamiehutton.com/2011/12/20/building-qt-4-8-0-intel-compiler/

    http://qt-project.org/forums/viewthread/14362 neste ultimo, a uma dica:

    You do not need to run the syncqt/syncqt.bat scripts if you use the sources from qt.nokia.com/downloads/
    Just go to the bin directory in the sources and remove or rename the two files syncqt and syncqt.bat. After that configure.exe runs as expected and without the need of installing Perl.

    Fiz o indicado mas não adiantou nada, resolvi então baixar a Qt SDK completa, 1.3 GB, demorado e após instalar não tem os drives de acesso a banco de dados, como eu já tenho todos compilados, tudo bem, só que na SDK é preciso colocar as dlls todas na pasta do executável, algo dispensável na Qt compilado, que busca no PATH, na SDK não adinata nadacolocar no PATH do Windows o Postgre, o MySql, sem as DLLs na pasta,nada feito.



  • Minha pergunta anterior sobre o configure era para verificar se estava ou não tentando compilar Qt estático ;)

    [quote author="Rodolfo Machado" date="1332207873"]
    Só que neste caso da Qt 4.8, meu procedimento foi puramente empírico, já que não a nenhum bug relatado referente a Qt 4.8 no Linux ( mas há no Windows).
    [/quote]

    Se não há outro relato, reporte o bug que você encontrou. Porém, olhando o QTBUG-13807 mencionado, ele foi marcado como duplicado de "QTBUG-13449":https://bugreports.qt-project.org/browse/QTBUG-13449. Nesse caso, adicione um comentário lá dizendo que reproduziu o erro.

    Por curiosidade, qual distribuição e versão do gcc/g++? Aqui com Archlinux e gcc/g++ 4.6.3 o tar.gz baixado de http://download.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.8.0.tar.gz, com o mesmo configure que você tentou e compilou normal :-/ ...

    [quote author="Rodolfo Machado" date="1332207873"]
    Aproveito para levantar também a questão da compilação no Windows, no meu caso no Win 7 ocorreu um erro relatado em vários blogs relativo a necessidade de ter o pearl instalado, ao rodar o configure no Windows, aparece o erro:
    [/quote]

    Alterei o título do tópico para refletir que aqui também está sendo tratado de compilação no Windows, ok?

    [quote author="Rodolfo Machado" date="1332207873"]
    http://qt-project.org/forums/viewthread/14362 neste ultimo, a uma dica:

    You do not need to run the syncqt/syncqt.bat scripts if you use the sources from qt.nokia.com/downloads/
    Just go to the bin directory in the sources and remove or rename the two files syncqt and syncqt.bat. After that configure.exe runs as expected and without the need of installing Perl.

    Fiz o indicado mas não adiantou nada
    [/quote]

    De acordo com o "procedimento oficial":http://doc.qt.nokia.com/main-snapshot/requirements.html, Perl é um dos requisitos para compilação no Windows. A recomendação citada acima não é oficial, por favor responda no tópico dizendo que ela não funcionou.

    [quote author="Rodolfo Machado" date="1332207873"]
    resolvi então baixar a Qt SDK completa, 1.3 GB, demorado
    [/quote]

    Dica: Nesse caso, não bastaria baixar "apenas as bibliotecas":http://qt.nokia.com/downloads/downloads#qt-lib? O pacote completo do SDK no Windows inclui QtCreator + toolchains para Symbian, MeeGo/Harmattan, simulador entre outras coisas que talvez nem sejam úteis para você no momento.

    [quote author="Rodolfo Machado" date="1332207873"]
    e após instalar não tem os drives de acesso a banco de dados, como eu já tenho todos compilados, tudo bem, só que na SDK é preciso colocar as dlls todas na pasta do executável, algo dispensável na Qt compilado, que busca no PATH, na SDK não adinata nadacolocar no PATH do Windows o Postgre, o MySql, sem as DLLs na pasta,nada feito.
    [/quote]

    Posso estar desatualizado, mas pelo que lembro, bibliotecas pré-compiladas de Qt acompanham apenas do plugin para sqlite. Para compilar outros, "veja se ajuda":http://doc.qt.nokia.com/4.7/sql-driver.html#how-to-build-the-qmysql-plugin-on-windows.

    A parte sobre as dlls ficou confusa: você moveu para a pasta foram as dos plugins para os banco de dados?

    Abraço :-)



  • Caro Anselmo, desculpe a confusão na minha resposta, bem, no Linux compilei no Kubuntu 10.1 usando GCC 4.6.
    Minha distribuição de trabalho é o Debian, o Kubuntu estou usando num notebook que comprei para usar quando for atender clientes.
    A versão da Qt que tentei compilar no Windows baixei daqui:

    http://qt.nokia.com/downloads/windows-cpp

    Instalei o perl baixado daqui:

    http://www.activestate.com/activeperl/downloads/thank-you?dl=http://downloads.activestate.com/ActivePerl/releases/5.14.2.1402/ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi

    Atualizei o PATH do Windows, mas não funcionou, vou tentar novamente seguindo as instruções que você mencionou.

    De fato, o SDK tem muita coisa que eu não vou usar.
    A questão dos drivers no Windows, explicando, é que quando eu compilo a Qt, no Windows, e desenvolvo com o Qt Creator, normalmente coloco no PATH o caminho da Qt, do banco, no meu caso o PostgreSql e do MinGw, isto é o suficiente.
    No SDK foi preciso colocar na pasta do executável, no caso, a pasta que o Qt Creaor cria, qtcreator-build, todas as DLLs que eu normalmente só colocaria em um cliente meu, até as da Qt, e também a pasta sqldrivers com os drivers de acesso ao Postgre.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.