Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. Compilador Intel
Forum Updated to NodeBB v4.3 + New Features

Compilador Intel

Scheduled Pinned Locked Moved Portuguese
17 Posts 2 Posters 6.9k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    Exotic_Devel
    wrote on last edited by
    #1

    No passado ja fiz uma pergunta referente a isso aqui nos foruns do Qt. Referente a como usar o compilador da intel ICC para compilar os aplicativos criados. As respostas que tive falavam que eu teria que compilar todo o QtSDK com o compilador que eu quisesse usar.
    Isso sempre me intrigou, pois não consigo perceber essa necessidade. Pq eu teria que compila todo o QtSDK só para poder usar outro compilador qualquer para compilar minhas aplicações?

    Apesar que todos terem me dito que isso é necessário, não é isso que diz "aqui":http://qt-project.org/doc/qtcreator-2.6/creator-tool-chains.html

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TioRoy
      wrote on last edited by
      #2

      Na página está dizendo que o QtCreator detecta o compilador. Só isso.
      No QtCreator você precisa montar um "Kit": Compilador + Versão de Qt (Compilado)

      A incompatibilidade do Qt pré-compilado está no fato de que cada compilador gera código compativel para si mesmo.

      Por exemplo: no Windows, as DLL's geradas pelo MingW "não podem" ser usadas diretamente pelo compilador da Microsoft ou vice-versa (calling convenction).

      Dá uma olhada neste "pdf":http://www.agner.org/optimize/calling_conventions.pdf

      Apesar da Intel usar a mesma assinatura dos nomes que a Microsoft usa no Windows, e as mesma que o GCC 3 no LInux, tenho quase certeza que não vai funcionar usar o ICC para compilar seu programa, usando o Qt précompilado, em ambas plataformas. Por isso, você precisa compilar o Qt usando o ICC. E só depois, montar o Kit no QtCreator para usar.

      1 Reply Last reply
      0
      • E Offline
        E Offline
        Exotic_Devel
        wrote on last edited by
        #3

        Saquei....
        Então no final das contas de nada adianta a funcionalidade da IDE detectar outros compiladores se não será possível compilar aplicações Qt com eles, talvez só código c++ puro

        1 Reply Last reply
        0
        • E Offline
          E Offline
          Exotic_Devel
          wrote on last edited by
          #4

          Encontrei um "passo-a-passo":http://software.intel.com/en-us/articles/build-qt-libraries-with-intel-compiler-linux para compilar o Qt com icc, mas não to entendendo parte da linha de comando

          @source /opt/intel/composer_xe_2011_sp1.8.273/bin/compilervars.sh intel64 mkdir prefix ./configure --prefix=./prefix/ -platform linux-icc-64 make make install@

          source?

          mkdir (criar diretório prefix) ?

          1 Reply Last reply
          0
          • T Offline
            T Offline
            TioRoy
            wrote on last edited by
            #5

            Se você levar em conta que o QtCreator é um IDE C++, que pode compilar programas C++ sem o Qt (CMake), adianta sim ele detectar os compiladores.

            No passo a passo:

            @source /opt/intel/composer_xe_2011_sp1.8.273/bin/compilervars.sh intel64@

            Executa o .sh. O source roda a shell, mesmo quando não tem permissão de execução (chmod).

            @
            mkdir <prefix>
            @

            Cria um dir para o Qt compilado (output)

            @ ./configure --prefix=./<prefix>/ -platform linux-icc-64@
            Configura o Qt para compilação

            @make@

            Compila

            @make install@

            Copia para <prefix> o Qt compilado

            1 Reply Last reply
            0
            • E Offline
              E Offline
              Exotic_Devel
              wrote on last edited by
              #6

              To com algumas dúvidas ainda,
              Qual a função do script compilervars.sh ?

              O diretório de saida (<prefix>) pode ter qualquer nome e pode estar em qualquer lugar que eu queira?

              Quando executei o configure, ao finei foi exibido um relatório de configuração no final tinha uma relação de drivers SQL, na lista apenas o SQLLite estava marcado com 'yes' os outros drivers estava com 'no', o que quer dizer? os driver para os outros banco não serão compilados?
              Como mudar isso?

              A compilação também falhou.

              @../../../include/QtCore/../../src/corelib/global/qglobal.h(975): catastrophic error: #error directive: "You must build your code with position independent code if Qt was built with -reduce-relocations. " "Compile your code with -fPIC or -fPIE."

              error "You must build your code with position independent code if Qt was built with -reduce-relocations. "\

               ^
              

              compilation aborted for customwidgetsinfo.cpp (code 4)
              make[3]: ** [.obj/release-shared/customwidgetsinfo.o] Erro 4
              make[3]: Saindo do diretório /home/matheus/Downloads/qt-everywhere-opensource-src-5.1.1/qtbase/src/tools/uic' make[2]: ** [sub-uic-make_first] Erro 2 make[2]: Saindo do diretório /home/matheus/Downloads/qt-everywhere-opensource-src-5.1.1/qtbase/src'
              make[1]: ** [sub-src-make_first] Erro 2
              make[1]: Saindo do diretório `/home/matheus/Downloads/qt-everywhere-opensource-src-5.1.1/qtbase'
              make: ** [module-qtbase-make_first] Erro 2
              @

              1 Reply Last reply
              0
              • T Offline
                T Offline
                TioRoy
                wrote on last edited by
                #7

                compilervars.sh: Provavelmente ele deve setar as variaveis de ambiente necessárias para o compilador funcionar corretamente (PATH por exemplo).

                O diretório <prefix> pode ser qualquer um sim.

                O Qt só vem com o fonte do sqllite. Para compilar os outros drivers, você precisa ter os fontes de cada um. Como você está no linux, acho que basta instalar o pacote "devel" do driver que você quer compilar (por exemplo o mysql-devel)

                Estou achando estranho ele dar erro de compilação pendido o parâmetro "-fPIC", pois no linux-icc.conf (mkspecs) já tem este parâmetro.
                Tente executar:

                @
                export CXX_FLAGS=-fPIC
                @

                e depois rode o confiure/make de novo.

                1 Reply Last reply
                0
                • E Offline
                  E Offline
                  Exotic_Devel
                  wrote on last edited by
                  #8

                  Mesmo erro idêntico sem tirar nem por

                  Aproveitando.....

                  Cara, dentro do cpp eu me viro, mas sou muito cru nessa parte de compilação manual, usar o make, make install, configure, parametros de compilação flags, etc.... Eu nem sei que raios é essa flag fPIC.

                  Onde eu encontro um bom material sobre esses assuntos?

                  1 Reply Last reply
                  0
                  • E Offline
                    E Offline
                    Exotic_Devel
                    wrote on last edited by
                    #9

                    Desisti do ICC resolvi compilar com o gcc mesmo, porém to com o seguinte erro

                    @../../gui/openglwindow/openglwindow.h:52:1: error: expected class-name before ‘{’ token
                    {
                    ^
                    make[4]: ** [.obj/release-shared/windowcontainer.o] Erro 1@

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      TioRoy
                      wrote on last edited by
                      #10

                      O "-fPIC" é uma diretiva de compilação para que o compilador gere "código independente de posição" (tradução horrível que fiz): http://en.wikipedia.org/wiki/Position-independent_code

                      Não tenho o ICC aqui para testar. Mas com o gcc deveria funcionar sem problemas,

                      Você quer compilar o Qt 5.1.1? Um bom guia seria http://qt-project.org/wiki/Building_Qt_5_from_Git, (inglês)

                      Para você, que já baixou o ZIP com os fontes, poderia pular para a etapa "Configuring and building" do guia.

                      Mas uma sugestão é apagar todos os arquivos que você tentou usar o ICC, e fazer unzip de novo para usar o GCC.

                      1 Reply Last reply
                      0
                      • E Offline
                        E Offline
                        Exotic_Devel
                        wrote on last edited by
                        #11

                        Ja apaguei, essa e uma tentativa totalmente nova de compilação, nem o icco tenho mais instalado, deletei os fontes e baixei denovo, mas to tendo esse erro ai.

                        E eu estou seguindo justamente esse guia, só não estou baixando do git, baixei o pacote inteiro de

                        http://download.qt-project.org/official_releases/qt/5.1/5.1.1/single/qt-everywhere-opensource-src-5.1.1.tar.gz

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          TioRoy
                          wrote on last edited by
                          #12

                          Quando você rodou o configure, apareceu algum problema?
                          Qual distribuição LInux você usa?

                          1 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            TioRoy
                            wrote on last edited by
                            #13

                            Você pode tentar usar o http://asciinema.org/, para gravar o passo a passo, desde o configure.

                            Por exemplo, aqui (Fedora 18), rodando o comando

                            @
                            ./configure -developer-build -opensource -nomake examples -nomake tests
                            @

                            Tem a seguinte saída:

                            @
                            Running configuration tests...

                            Configure summary

                            Build type: linux-g++ (x86_64, CPU features: mmx sse sse2)
                            Platform notes:

                                    - Also available for Linux: linux-kcc linux-icc linux-cxx
                            

                            Build options:
                            Configuration .......... accessibility audio-backend avx avx2 c++11 clock-gettonfig getaddrinfo getifaddrs iconv inotify ipv6ifname large-config largefile lineader private_tests qpa qpa reduce_exports reduce_relocations rpath shared smallib v8 v8snapshot warnings_are_errors
                            Build parts ............ libs tools
                            Mode ................... debug
                            Using C++11 ............ yes
                            Using PCH .............. yes
                            Target compiler supports:
                            SSE2/SSE3/SSSE3 ...... yes/yes/yes
                            SSE4.1/SSE4.2 ........ yes/yes
                            AVX/AVX2 ............. yes/yes

                            Qt modules and options:
                            Qt D-Bus ............... no
                            Qt Concurrent .......... yes
                            Qt GUI ................. yes
                            Qt Widgets ............. yes
                            JavaScriptCore JIT ..... yes (To be decided by JavaScriptCore)
                            QML debugging .......... yes
                            Use system proxies ..... no

                            Support enabled for:
                            Accessibility .......... yes
                            ALSA ................... no
                            CUPS ................... no
                            FontConfig ............. no
                            Iconv .................. yes
                            ICU .................... no
                            Image formats:
                            GIF .................. yes (plugin, using system library)
                            JPEG ................. yes (plugin, using bundled copy)
                            PNG .................. yes (in QtGui, using system library)
                            Glib ................... no
                            GStreamer .............. no
                            GTK theme .............. no
                            Large File ............. yes
                            libudev ................ no
                            Networking:
                            getaddrinfo .......... yes
                            getifaddrs ........... yes
                            IPv6 ifname .......... yes
                            OpenSSL .............. yes (loading libraries at run-time)
                            NIS .................... yes
                            OpenGL ................. no
                            OpenVG ................. no
                            PCRE ................... yes (bundled copy)
                            pkg-config ............. yes
                            PulseAudio ............. no
                            QPA backends:
                            DirectFB ............. no
                            EGLFS ................ no
                            KMS .................. no
                            LinuxFB .............. yes
                            XCB .................. no
                            Session management ..... yes
                            SQL drivers:
                            DB2 .................. no
                            InterBase ............ no
                            MySQL ................ no
                            OCI .................. no
                            ODBC ................. no
                            PostgreSQL ........... no
                            SQLite 2 ............. no
                            SQLite ............... yes (plugin, using bundled copy)
                            TDS .................. no
                            udev ................... no
                            xkbcommon .............. no
                            zlib ................... yes (system library)

                            Qt is now configured for building. Just run 'gmake'.
                            Once everything is built, Qt is installed.
                            You should not run 'gmake install'.

                            Prior to reconfiguration, make sure you remove any leftovers from
                            the previous build.
                            @

                            1 Reply Last reply
                            0
                            • E Offline
                              E Offline
                              Exotic_Devel
                              wrote on last edited by
                              #14

                              Eu uso Fedora de 19,

                              O único parâmetro que eu passei pro configure foi o prefix e -no-sql-sqlite, e não mostrou erro nenhum

                              1 Reply Last reply
                              0
                              • T Offline
                                T Offline
                                TioRoy
                                wrote on last edited by
                                #15

                                Uso Fedora 18. Mas realmente nunca tentei recompilar o Qt aqui.

                                O erro "expected class-name", dá a entender que falta definição de classe. E no caso do fonte, algo relacionado ao OpenGL. Mas o que é estranho, é que o configure deveria checar se você tem os includes e os headers do OpenGl (no caso o Mesa).

                                Na saída do seu configure, o OpenGL ficou em "No" ou "Yes"?
                                Não tenho certeza se precisa de todos, mas você pode checar se vc tem os pacotes mesa-libGLU-devel, mesa-libGLw-devel e mesa-libGL-devel instalados.

                                1 Reply Last reply
                                0
                                • E Offline
                                  E Offline
                                  Exotic_Devel
                                  wrote on last edited by
                                  #16

                                  opengl ficou "no"

                                  1 Reply Last reply
                                  0
                                  • T Offline
                                    T Offline
                                    TioRoy
                                    wrote on last edited by
                                    #17

                                    O Qt precisa do opengl (includes/lib) para compilar. Como você colocou apenas "-no-sql-sqlite", e o configure não detectou o OpenGL, você não tem o suporte necessário para compilar o Qt.

                                    Pelo wiki, quem precisa do opengl é o QML2.

                                    Você pode, se quiser, compilar módulo por módulo, depois que rodar o configure,
                                    Comece pelo qtbase e depois os outros módulos.
                                    @
                                    cd qtbase; make; cd ..
                                    ...
                                    @

                                    Depois de complar o qtbase, você terá o básico do Qt, já podendo configurar o QtCreator para usar o Qt que você está compilando.

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved