Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. QT5 build: CC: No such file or directory
Forum Updated to NodeBB v4.3 + New Features

QT5 build: CC: No such file or directory

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
69 Posts 4 Posters 14.4k 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #26

    Which version of Qt are you building ?

    I would have rather added the missing parenthesis in this case.

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    M 1 Reply Last reply
    0
    • SGaistS SGaist

      Which version of Qt are you building ?

      I would have rather added the missing parenthesis in this case.

      M Offline
      M Offline
      Michele31415
      wrote on last edited by Michele31415
      #27

      @SGaist I'm building what

      git clone https://code.qt.io/qt/qt5.git
      

      gave me two days ago. Where does it tell you what version you have? Which missing parentheses?
      Should this line in qvncscreen.cpp

      bool QVNCScreen::swapBytes() const
      

      perhaps be

      bool QVncScreen::swapBytes() const
      

      because further up I see

      QVncScreen::~QVncScreen()
      {
          if (clientCursor)
              delete clientCursor;
      }
      
      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #28

        Ok, so you are in fact building the dev branch which is Qt 6. So is that what you want ?

        I am currently wondering whether you have something that changed these files. Looking at the sources, I do not see these errors in the vnc plugin.

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        M 1 Reply Last reply
        1
        • SGaistS SGaist

          Ok, so you are in fact building the dev branch which is Qt 6. So is that what you want ?

          I am currently wondering whether you have something that changed these files. Looking at the sources, I do not see these errors in the vnc plugin.

          M Offline
          M Offline
          Michele31415
          wrote on last edited by
          #29

          @SGaist Um, I'm building QT6?? How could that be? My build directory is called:
          /opt/qt5/qt5-build $
          I'm following directions from https://wiki.qt.io/Building_Qt_5_from_Git Now I'm confused.

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #30

            As I wrote before, the default branch that is checked out when cloning from git is the dev branch and that one is for Qt 6.

            You have to explicitly check out the 5.15 branch if you want to build Qt 5.

            The repository naming is currently in discussion.

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            M 1 Reply Last reply
            1
            • SGaistS SGaist

              As I wrote before, the default branch that is checked out when cloning from git is the dev branch and that one is for Qt 6.

              You have to explicitly check out the 5.15 branch if you want to build Qt 5.

              The repository naming is currently in discussion.

              M Offline
              M Offline
              Michele31415
              wrote on last edited by
              #31

              @SGaist Sorry, I must have missed that. I just assumed that if I followed the directions on a page called "Building QT5 from Git" then I'd get QT5. I don't need any particular QT5, just something more than QT4. May I ask what command I need to issue to get 5.15? Is it

              git clone https://github.com/qtproject/qt5.git --branch 5.15
              

              ?

              jsulmJ 1 Reply Last reply
              0
              • M Michele31415

                @SGaist Sorry, I must have missed that. I just assumed that if I followed the directions on a page called "Building QT5 from Git" then I'd get QT5. I don't need any particular QT5, just something more than QT4. May I ask what command I need to issue to get 5.15? Is it

                git clone https://github.com/qtproject/qt5.git --branch 5.15
                

                ?

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #32

                @Michele31415 I think you missed:

                $ cd qt5
                $ git checkout 5.12
                

                from https://wiki.qt.io/Building_Qt_5_from_Git

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  Michele31415
                  wrote on last edited by
                  #33

                  Drat! Can I still do that now or do I have to start all over again? Maybe rm -rf qt5-build?

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #34

                    No problem, you can checkout at branch at any time. Just ensure that all sub modules are as well.

                    You definitively want to nuke the build folder.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    M 1 Reply Last reply
                    1
                    • SGaistS SGaist

                      No problem, you can checkout at branch at any time. Just ensure that all sub modules are as well.

                      You definitively want to nuke the build folder.

                      M Offline
                      M Offline
                      Michele31415
                      wrote on last edited by
                      #35

                      @SGaist Yup, configure ran cleanly through this time, first try. Assuming the gmake works, I'm wondering about this bit:

                      Qt is now configured for building. Just run 'gmake'.
                      Once everything is built, you must run 'gmake install'.
                      Qt is now configured for building. Just run 'gmake'.
                      Once everything is built, you must run 'gmake install'.
                      Qt will be installed into
                      
                      Prior to reconfiguration, make sure you remove any leftovers from
                      the previous build.
                      

                      That line that says "Qt will be installed into" just ends in space. Have I missed something else now?

                      M SGaistS 2 Replies Last reply
                      0
                      • M Michele31415

                        @SGaist Yup, configure ran cleanly through this time, first try. Assuming the gmake works, I'm wondering about this bit:

                        Qt is now configured for building. Just run 'gmake'.
                        Once everything is built, you must run 'gmake install'.
                        Qt is now configured for building. Just run 'gmake'.
                        Once everything is built, you must run 'gmake install'.
                        Qt will be installed into
                        
                        Prior to reconfiguration, make sure you remove any leftovers from
                        the previous build.
                        

                        That line that says "Qt will be installed into" just ends in space. Have I missed something else now?

                        M Offline
                        M Offline
                        Michele31415
                        wrote on last edited by
                        #36

                        gmake failed again but I can't find an actual error line anywhere in the output, just that "Error 2" at the very end.

                        ...
                        ../../../include/QtCore/../../../../qtbase/src/corelib/tools/qlist.h:238:16: note: because ‘QList<QString>::iterator’ has user-provided ‘QList<T>::iterator::iterator(const QList<T>::iterator&) [with T = QString]’
                          238 |         inline iterator(const iterator &o) Q_DECL_NOTHROW : i(o.i){}
                              |                ^~~~~~~~
                        rm -f ../../../lib/libQt5Bootstrap.a
                        ar cq ../../../lib/libQt5Bootstrap.a .obj/qlatincodec.o .obj/qtextcodec.o .obj/qutfcodec.o .obj/qglobal.o .obj/qlogging.o .obj/qmalloc.o .obj/qnumeric.o .obj/qabstractfileengine.o .obj/qbuffer.o .obj/qdatastream.o .obj/qdebug.o .obj/qdir.o .obj/qdiriterator.o .obj/qfile.o .obj/qfileinfo.o .obj/qfilesystementry.o .obj/qfilesystemengine.o .obj/qfsfileengine.o .obj/qfsfileengine_iterator.o .obj/qiodevice.o .obj/qfiledevice.o .obj/qresource.o .obj/qtemporaryfile.o .obj/qtextstream.o .obj/qstandardpaths.o .obj/qloggingcategory.o .obj/qloggingregistry.o .obj/qcoreapplication.o .obj/qcoreglobaldata.o .obj/qmetatype.o .obj/qvariant.o .obj/qsystemerror.o .obj/quuid.o .obj/qbitarray.o .obj/qbytearray.o .obj/qarraydata.o .obj/qbytearraymatcher.o .obj/qcommandlineparser.o .obj/qcommandlineoption.o .obj/qcryptographichash.o .obj/qdatetime.o .obj/qhash.o .obj/qlist.o .obj/qlinkedlist.o .obj/qlocale.o .obj/qlocale_tools.o .obj/qmap.o .obj/qregexp.o .obj/qringbuffer.o .obj/qpoint.o .obj/qrect.o .obj/qsize.o .obj/qline.o .obj/qstring.o .obj/qstringbuilder.o .obj/qstring_compat.o .obj/qstringlist.o .obj/qvector.o .obj/qvsnprintf.o .obj/qxmlutils.o .obj/qxmlstream.o .obj/qjson.o .obj/qjsondocument.o .obj/qjsonobject.o .obj/qjsonarray.o .obj/qjsonvalue.o .obj/qjsonparser.o .obj/qjsonwriter.o .obj/qdom.o .obj/qxml.o .obj/qfilesystemengine_unix.o .obj/qfilesystemiterator_unix.o .obj/qfsfileengine_unix.o .obj/qstandardpaths_unix.o
                        gmake[3]: Leaving directory '/opt/qt5/qt5-build/qtbase/src/tools/bootstrap'
                        gmake[2]: Leaving directory '/opt/qt5/qt5-build/qtbase/src'
                        gmake[1]: *** [Makefile:47: sub-src-make_first] Error 2
                        gmake[1]: Leaving directory '/opt/qt5/qt5-build/qtbase'
                        gmake: *** [Makefile:85: module-qtbase-make_first] Error 2
                        /opt/qt5/qt5-build $
                        
                        1 Reply Last reply
                        0
                        • M Michele31415

                          @SGaist Yup, configure ran cleanly through this time, first try. Assuming the gmake works, I'm wondering about this bit:

                          Qt is now configured for building. Just run 'gmake'.
                          Once everything is built, you must run 'gmake install'.
                          Qt is now configured for building. Just run 'gmake'.
                          Once everything is built, you must run 'gmake install'.
                          Qt will be installed into
                          
                          Prior to reconfiguration, make sure you remove any leftovers from
                          the previous build.
                          

                          That line that says "Qt will be installed into" just ends in space. Have I missed something else now?

                          SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #37

                          @Michele31415 said in QT5 build: CC: No such file or directory:

                          @SGaist Yup, configure ran cleanly through this time, first try. Assuming the gmake works, I'm wondering about this bit:

                          Qt is now configured for building. Just run 'gmake'.
                          Once everything is built, you must run 'gmake install'.
                          Qt is now configured for building. Just run 'gmake'.
                          Once everything is built, you must run 'gmake install'.
                          Qt will be installed into
                          
                          Prior to reconfiguration, make sure you remove any leftovers from
                          the previous build.
                          

                          That line that says "Qt will be installed into" just ends in space. Have I missed something else now?

                          If you used the same line as in your initial post, you are doing a developer build and hence it won't be installed. It's an "in place" build.

                          Unless you want to hack on Qt, you should drop that option as it changes some flags (I don't remember which though).

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          M 1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #38

                            As for the bootstrap error, are you using a multithreaded build ? I do not see the error trigger the stop.

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            1 Reply Last reply
                            0
                            • SGaistS SGaist

                              @Michele31415 said in QT5 build: CC: No such file or directory:

                              @SGaist Yup, configure ran cleanly through this time, first try. Assuming the gmake works, I'm wondering about this bit:

                              Qt is now configured for building. Just run 'gmake'.
                              Once everything is built, you must run 'gmake install'.
                              Qt is now configured for building. Just run 'gmake'.
                              Once everything is built, you must run 'gmake install'.
                              Qt will be installed into
                              
                              Prior to reconfiguration, make sure you remove any leftovers from
                              the previous build.
                              

                              That line that says "Qt will be installed into" just ends in space. Have I missed something else now?

                              If you used the same line as in your initial post, you are doing a developer build and hence it won't be installed. It's an "in place" build.

                              Unless you want to hack on Qt, you should drop that option as it changes some flags (I don't remember which though).

                              M Offline
                              M Offline
                              Michele31415
                              wrote on last edited by Michele31415
                              #39

                              @SGaist "If you used the same line as in your initial post"
                              Arrgh, yes I did. OK, we start over again. This time:

                              /opt/qt5/qt5-build $ ../configure  -opensource -nomake examples -nomake tests -platform solaris-g++
                              

                              This also worked. Now starting gmake -j16 again.
                              UPDATE:
                              It just doesn't seem to like qvncscreen.cpp:

                              /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp: In member function ‘bool QVncScreen::swapBytes() const’:
                              /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:182:24: error: invalid use of incomplete type ‘class QScreen’
                                182 |         return screen()->frameBufferLittleEndian();
                                    |                        ^~
                              In file included from ../../../../include/QtGui/qcursor.h:1,
                                               from ../../../../include/QtGui/5.8.0/QtGui/qpa/../../../../../../../qtbase/src/gui/kernel/qplatformscreen.h:60,
                                               from ../../../../include/QtGui/5.8.0/QtGui/qpa/qplatformscreen.h:1,
                                               from ../../../../include/QtFbSupport/5.8.0/QtFbSupport/private/../../../../../../../qtbase/src/platformsupport/fbconvenience/qfbscreen_p.h:54,
                                               from ../../../../include/QtFbSupport/5.8.0/QtFbSupport/private/qfbscreen_p.h:1,
                                               from /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.h:43,
                                               from /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:40:
                              ../../../../include/QtGui/../../../../qtbase/src/gui/kernel/qcursor.h:51:7: note: forward declaration of ‘class QScreen’
                                 51 | class QScreen;
                                    |       ^~~~~~~
                              /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:183:12: error: ‘frameBufferLittleEndian’ was not declared in this scope
                                183 |     return frameBufferLittleEndian();
                                    |            ^~~~~~~~~~~~~~~~~~~~~~~
                              gmake[5]: *** [Makefile:2355: .obj/qvncscreen.o] Error 1
                              gmake[5]: Leaving directory '/opt/qt5/qt5-build/qtbase/src/plugins/platforms/vnc'
                              gmake[4]: *** [Makefile:121: sub-vnc-make_first] Error 2
                              gmake[4]: Leaving directory '/opt/qt5/qt5-build/qtbase/src/plugins/platforms'
                              gmake[3]: *** [Makefile:100: sub-platforms-make_first] Error 2
                              gmake[3]: Leaving directory '/opt/qt5/qt5-build/qtbase/src/plugins'
                              gmake[2]: *** [Makefile:669: sub-plugins-make_first] Error 2
                              gmake[2]: Leaving directory '/opt/qt5/qt5-build/qtbase/src'
                              gmake[1]: *** [Makefile:47: sub-src-make_first] Error 2
                              gmake[1]: Leaving directory '/opt/qt5/qt5-build/qtbase'
                              gmake: *** [Makefile:85: module-qtbase-make_first] Error 2
                              /opt/qt5/qt5-build $
                              

                              And indeed this seems to be MIA:

                              /opt/qt5 $ ggrep -rl "frameBufferLittleEndian" .           
                              ./qtbase/src/plugins/platforms/vnc/qvncscreen.cpp
                              /opt/qt5 $
                              
                              1 Reply Last reply
                              0
                              • SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on last edited by SGaist
                                #40

                                @Michele31415 said in QT5 build: CC: No such file or directory:

                                frameBufferLittleEndian

                                You might be the first person building that plugin on a big endian system.

                                AFAIK, that call should be commented out with a Todo comment and the method do nothing and return false.

                                I'd recommend doing that so your build can continue.

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  Michele31415
                                  wrote on last edited by
                                  #41

                                  I was actually wondering about that. So I've now changed that block at the end of qvncscreen.cpp to read

                                  #if Q_BYTE_ORDER == Q_BIG_ENDIAN
                                  bool QVncScreen::swapBytes() const
                                  //bool QVNCScreen::swapBytes() const
                                  {
                                      if (depth() != 16)
                                          return false;
                                  
                                  //    if (screen())
                                  //        return screen()->frameBufferLittleEndian();
                                  //    return frameBufferLittleEndian();
                                      return false ;
                                  }
                                  #endif
                                  

                                  Now we're getting

                                  /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncclient.cpp:642:9: error: ‘qvnc_screen’ was not declared in this scope
                                    642 |     if (qvnc_screen->swapBytes())
                                  

                                  I'll have to see if qvnc_screen is actually declared anywhere.

                                  M 1 Reply Last reply
                                  0
                                  • M Michele31415

                                    I was actually wondering about that. So I've now changed that block at the end of qvncscreen.cpp to read

                                    #if Q_BYTE_ORDER == Q_BIG_ENDIAN
                                    bool QVncScreen::swapBytes() const
                                    //bool QVNCScreen::swapBytes() const
                                    {
                                        if (depth() != 16)
                                            return false;
                                    
                                    //    if (screen())
                                    //        return screen()->frameBufferLittleEndian();
                                    //    return frameBufferLittleEndian();
                                        return false ;
                                    }
                                    #endif
                                    

                                    Now we're getting

                                    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncclient.cpp:642:9: error: ‘qvnc_screen’ was not declared in this scope
                                      642 |     if (qvnc_screen->swapBytes())
                                    

                                    I'll have to see if qvnc_screen is actually declared anywhere.

                                    M Offline
                                    M Offline
                                    Michele31415
                                    wrote on last edited by
                                    #42

                                    I had to comment this out in qvncclient.cpp (probably not a good thing to do but I don't know what this is for and I don't really need VNC in QT anyway)::

                                    #if Q_BYTE_ORDER == Q_BIG_ENDIAN
                                        //    m_swapBytes = qvnc_screen->swapBytes();
                                    #endif
                                    

                                    Now it's finally linking but still not happy with some qtserialbus stuff:

                                    /opt/qt5/qt5-build/qtserialbus/lib/libQt5SerialBus.sold: 
                                    fatal: symbol referencing errors
                                    ld: fatal: symbol referencing errors
                                    collect2: error: ld returned 1 exit status
                                    collect2: error: ld returned 1 exit status
                                    gmake[5]: *** [Makefile:74: ../../../../plugins/canbus/libqtpeakcanbus.so] Error 1
                                    gmake[5]: Leaving directory '/opt/qt5/qt5-build/qtserialbus/src/plugins/canbus/peakcan'
                                    gmake[5]: *** [Makefile:74: ../../../../plugins/canbus/libqttinycanbus.so] Error 1
                                    gmake[5]: Leaving directory '/opt/qt5/qt5-build/qtserialbus/src/plugins/canbus/tinycan'
                                    gmake[4]: *** [Makefile:69: sub-tinycan-make_first] Error 2
                                    gmake[4]: *** Waiting for unfinished jobs....
                                    gmake[4]: *** [Makefile:44: sub-peakcan-make_first] Error 2
                                    gmake[4]: Leaving directory '/opt/qt5/qt5-build/qtserialbus/src/plugins/canbus'
                                    gmake[3]: *** [Makefile:43: sub-canbus-make_first] Error 2
                                    gmake[3]: Leaving directory '/opt/qt5/qt5-build/qtserialbus/src/plugins'
                                    gmake[2]: *** [Makefile:70: sub-plugins-make_first] Error 2
                                    gmake[2]: Leaving directory '/opt/qt5/qt5-build/qtserialbus/src'
                                    gmake[1]: *** [Makefile:45: sub-src-make_first] Error 2
                                    gmake[1]: Leaving directory '/opt/qt5/qt5-build/qtserialbus'
                                    gmake: *** [Makefile:235: module-qtserialbus-make_first] Error 2
                                    

                                    I'm not particularly interested in the serial bus. Can I exclude this somehow? I grepped the configure --help for "serial" but came up empty.

                                    1 Reply Last reply
                                    0
                                    • SGaistS Offline
                                      SGaistS Offline
                                      SGaist
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #43

                                      You can add a -skip <module_to_skip> to the configure command for all modules you do not want to build.

                                      When you have such build error, you should restart the build single threaded so you get the exact point where it failed. Here it is lost somewhere in one of the threads used for the build process.

                                      Interested in AI ? www.idiap.ch
                                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      M 1 Reply Last reply
                                      0
                                      • SGaistS SGaist

                                        You can add a -skip <module_to_skip> to the configure command for all modules you do not want to build.

                                        When you have such build error, you should restart the build single threaded so you get the exact point where it failed. Here it is lost somewhere in one of the threads used for the build process.

                                        M Offline
                                        M Offline
                                        Michele31415
                                        wrote on last edited by
                                        #44

                                        @SGaist The errors seem to be in qtserialbus and MathExtras, Are those the names I'd put in -skip? (Or is there an easy fix for these?)
                                        ...

                                        ld: warning: ld: warning: file libQt5SerialPort.so.5: required by /opt/qt5/qt5-build/qtserialbus/lib/libQt5SerialBus.so, not found
                                        ...
                                        /opt/qt5/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h: At global scope:
                                        /opt/qt5/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h:96:13: error: redefinition of ‘bool std::isfinite(double)’
                                        ...
                                        In file included from /opt/qt5/qtdeclarative/src/qml/compiler/qv4compiler.cpp:46:
                                        /opt/qt5/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h:99:13: error: redefinition of ‘bool std::signbit(double)’
                                        ...
                                        In file included from /opt/qt5/qtdeclarative/src/qml/compiler/qv4compiler.cpp:46:
                                        /opt/qt5/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h:102:13: error: redefinition of ‘bool std::isinf(double)’
                                        
                                        1 Reply Last reply
                                        0
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #45

                                          The skip option is only for module names.

                                          As for the Qt declarative issue... gcc 10 is supported on Linux so it does look a bit strange...

                                          Interested in AI ? www.idiap.ch
                                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          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