Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QT5 build: CC: No such file or directory



  • While building qt5 in Solaris 11.4 SPARC, I get:

    root@hemlock:/opt/qt5/qtbase# ../configure -developer-build -opensource -nomake examples -nomake test
    + cd qtbase
    + /opt/qt5/qtbase/configure -top-level -developer-build -opensource -nomake examples -nomake test
    Preparing build tree...
    <srcbase> = /opt/qt5/qtbase 
    <bldbase> = /opt/qt5/qtbase/qtbase 
    <outbase> = /opt/qt5/qtbase/qtbase 
    Creating qmake...
    gmake: CC: No such file or directory
    gmake: *** [Makefile:246: main.o] Error 127
    .root@hemlock:/opt/qt5/qtbase#echo $cc
    /usr/bin/gcc
    root@hemlock:/opt/qt5/qtbase# echo $CC
    /usr/bin/gcc
    root@hemlock:/opt/qt5/qtbase#
    

    What am I doing wrong?


  • Lifetime Qt Champion

    Hi,

    Looks like you have no compiler installed.

    Unrelated note: do not work as root especially when building/installing libraries. You might nuke your system if something goes wrong.



  • Point taken, but I do have a working compiler:

    /opt/qt5 $ cd qtbase
    /opt/qt5/qtbase $ which gcc         
    /usr/bin/gcc
    /opt/qt5/qtbase $ gcc --version
    gcc (GCC) 10.2.0
    Copyright (C) 2020 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    /opt/qt5/qtbase $ gcc ~/helloworld.c
    /opt/qt5/qtbase $ ~/a.out
    Hello, World!/opt/qt5/qtbase $
    


  • The problem seems to be in this part of qtbase/configure (lines 814-817):

    bash -c 'set -o pipefail
                    cd "$0/qmake"; "$1" | while read line; do
                        builtin echo -n .
                    done' "$outpath" "$MAKE" || exit 2
    

    $1 has no value. Why, I do not know.


  • Lifetime Qt Champion

    Did you try to specify the Solaris mkspec ?



  • Ah ha! I set QMAKE_CC and QMAKE_CXX in qtbase/mkspecs/solaris-cc/qmake.conf and that got me going again. Configure went much further this time but now it's stopped with this:

    /opt/qt5/qtbase/src/corelib/global/qrandom.cpp: In function ‘void fallback_fill(quint32*, qsizetype)’:
    /opt/qt5/qtbase/src/corelib/global/qrandom.cpp:297:18: error: ‘getauxval’ was not declared in this scope
      297 |     ulong base = getauxval(AT_BASE);
    

    Apparently getauxval is some linux thing. There's a discussion around this here: http://lists.opencsw.org/pipermail/users/2019-January/010420.html so unless anyone has a better suggestion, I'll pursue that.



  • I decided the simplest thing was to just remove getauxval since it seemed to be optional anyway. Now we've made more progress. configure is almost finished but ends like this:
    ...........

    (long list of files redacted)
    ...Done.
    Info: creating super cache file /opt/qt5/qtbase/.qmake.super
    Info: creating cache file /opt/qt5/qtbase/.qmake.cache
    ERROR: Invalid value 'test' supplied to command line option 'nomake'.
    /opt/qt5/qtbase $
    

  • Lifetime Qt Champion

    Isn't it "-nomake tests" ?



  • Good catch - I missed the last character when I copied the command out of the instructions. But now I'm getting the "You cannot make a shadow build from a source tree containing a previous build.
    Cannot proceed." message.
    Is my only option to delete the entire qt5 directory and start over? I'm not seeing a "confclean" option.


  • Lifetime Qt Champion

    I'd go with make distclean but I am not sure, I haven't done any in tree build since over a decade. Always out of source, it allows you to keep your sources clean and start from scratch more easily.



  • I'm just following the recipe here: https://wiki.qt.io/Building_Qt_5_from_Git

    $ mkdir qt5-build
    $ cd qt5-build
    $ ..\\qt5\configure -developer-build -opensource -nomake examples -nomake tests
    

    In any event distclean did not work for me.

    /opt/qt5/qtbase $ gmake distclean
    gmake: *** No rule to make target 'distclean'.  Stop.
    /opt/qt5/qtbase $
    

    Update: Oh dear - I just noticed I somehow ended up in qtbase rather than qt5-build. Why don't I just start over.


  • Lifetime Qt Champion

    Well, since you are getting started, it's not a bad idea to just build qtbase. You can then build the rest later on.



  • I just started over from scratch. This time it almost finished:

    ..Done.
    Info: creating stash file /opt/qt5/qt5-build/.qmake.stash
    Info: creating super cache file /opt/qt5/qt5-build/.qmake.super
    
    Running configuration tests...
    Checking for gold linker... yes
    Checking for valid makespec... 
    ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.
    
    Check config.log for details.
    
    /opt/qt5/qt5-build $ cat config.log
    executing config test use_gold_linker
    + cd /opt/qt5/qt5-build/qtbase/config.tests && /usr/gcc/10/bin/g++ -fuse-ld=gold -o conftest-out conftest.cpp
    test config.qtbase.tests.use_gold_linker succeeded
    executing config test verifyspec
    + cd /opt/qt5/qt5-build/qtbase/config.tests/common/verifyspec && /opt/qt5/qt5-build/qtbase/bin/qmake -qtconf /opt/qt5/qt5-build/qtbase/bin/qt.conf "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared use_gold_linker console" /opt/qt5/qtbase/config.tests/common/verifyspec
    + cd /opt/qt5/qt5-build/qtbase/config.tests/common/verifyspec && MAKEFLAGS= /opt/csw/bin/gmake
    > /usr/gcc/10/bin/g++ -c -O2  -I/opt/qt5/qtbase/config.tests/common/verifyspec -I. -I/usr/sfw/include -I/opt/qt5/qtbase/mkspecs/solaris-cc -o verifyspec.o /opt/qt5/qtbase/config.tests/common/verifyspec/verifyspec.cpp
    > CC  -o verifyspec verifyspec.o   -L/usr/sfw/lib 
    > gmake: CC: No such file or directory
    > gmake: *** [Makefile:64: verifyspec] Error 127
    /opt/qt5/qt5-build $
    

    So it looks like we're back to this "no CC" business. I thought I had fixed that with the following change to qtbase/mkspecs/mkspec.conf:

    #QMAKE_CXX               = CC
    QMAKE_CXX               = /usr/gcc/10/bin/g++
    

    Technically this was more of an end-run than a fix. I still don't know where CC is being set. So there must be another instance somewhere I can't find.


  • Lifetime Qt Champion

    Silly question but did you check your environment variables ?

    Note that you seem to set only QMAKE_CXX, did you also set the other one ?



  • Yes, I also said this in qtbase/mkspecs/mkspec.conf

    #QMAKE_COMPILER          = sun_cc
    QMAKE_COMPILER          = gcc
    

    Env vars are:

    /opt/qt5/qt5-build $ echo $CC
    /usr/gcc/10/bin/gcc
    /opt/qt5/qt5-build $ echo $CXX
    /usr/gcc/10/bin/g++
    /opt/qt5/qt5-build $ which gcc
    /usr/gcc/10/bin/gcc
    /opt/qt5/qt5-build $ gcc --version
    gcc (GCC) 10.2.0
    Copyright (C) 2020 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    /opt/qt5/qt5-build $ g++ --version
    g++ (GCC) 10.2.0
    Copyright (C) 2020 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    /opt/qt5/qt5-build $ which gcc
    

    Do I need anything else there?


  • Lifetime Qt Champion

    What about the QMAKE_CC variable ?



  • That's set too:

    # QMAKE_COMPILER          = sun_cc
    QMAKE_COMPILER          = gcc
    
    QMAKE_CC                = gcc
    

  • Lifetime Qt Champion

    I just realized, did you try to specific the platform in your configure options ?



  • Uh, I guess not. What file would that be?


  • Lifetime Qt Champion

    Based on the mkspecs available, I would try the solaris-g++ or solaris-g++-64.



  • DING!! Give that man a ceegar! Thank you so much.

    ...(bunch of stuff) ...
    Qt WebEngine:
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      ALSA ................................... no
      PulseAudio ............................. no
    
    Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
    
    
    
    **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.
    /opt/qt5/qt5-build $ 
    

    For the record, this is the command that worked:

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

    I'm so happy I'm just going to let it go for now and wait til tomorrow to try the gmake :-)

    I am wondering about that "remove any leftovers" comment. Is that anything in particular?



  • Well gmake ran for a long time but finally gave up. This is the tail of the tale:

    ../../../../include/QtGui/../../../../qtbase/src/gui/painting/qtransform.h:57:20: note: ‘class QTransform’ declared here
       57 | class Q_GUI_EXPORT QTransform
          |                    ^~~~~~~~~~
    ../../../../include/QtGui/../../../../qtbase/src/gui/painting/qtransform.h: In copy constructor ‘QTransform::QTransform(const QTransform&)’:
    ../../../../include/QtGui/../../../../qtbase/src/gui/painting/qtransform.h:88:46: warning: ‘void* std::memcpy(void*, const void*, std::size_t)’ writing to an object of type ‘class QTransform’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead []8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclass-memaccess-Wclass-memaccess]8;;]
       88 |     { memcpy(this, &other, sizeof(QTransform)); }
          |                                              ^
    ../../../../include/QtGui/../../../../qtbase/src/gui/painting/qtransform.h:57:20: note: ‘class QTransform’ declared here
       57 | class Q_GUI_EXPORT QTransform
          |                    ^~~~~~~~~~
    In file included from /opt/qt5/qtbase/src/plugins/platforms/vnc/qvnc_p.h:43,
                     from /opt/qt5/qtbase/src/plugins/platforms/vnc/main.cpp:42:
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.h: At global scope:
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.h:76:22: error: expected ‘;’ at end of member declaration
       76 |     bool swapBytes() const
          |                      ^~~~~
          |                           ;
    gmake[5]: *** [Makefile:1665: .obj/main.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:695: 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:89: module-qtbase-make_first] Error 2
    /opt/qt5/qt5-build $
    


  • So I gave qvncscreen.h the semicolon it was missing:

    #if Q_BYTE_ORDER == Q_BIG_ENDIAN
        bool swapBytes() const ;
    #endif
    

    and tried again. Now we get:

    g++ -c -g -Wall -W -D_REENTRANT -fPIC -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_PLUGIN -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I/opt/qt5/qtbase/src/plugins/platforminputcontexts/ibus -I. -I../../../../include/QtGui/5.8.0 -I../../../../include/QtGui/5.8.0/QtGui -I../../../../include -I../../../../include/QtGui -I../../../../include/QtDBus -I../../../../include/QtCore/5.8.0 -I../../../../include/QtCore/5.8.0/QtCore -I../../../../include/QtCore -I.moc -I/opt/csw/include -I/usr/openwin/include -I/usr/sfw/include -I/opt/qt5/qtbase/mkspecs/solaris-g++ -o .obj/qibusproxy.o /opt/qt5/qtbase/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncclient.cpp: In member function ‘void QVncClient::convertPixels(char*, const char*, int) const’:
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncclient.cpp:145:17: error: ‘swapBytes’ was not declared in this scope; did you mean ‘m_swapBytes’?
      145 |             if (swapBytes)
          |                 ^~~~~~~~~
          |                 m_swapBytes
    

  • Lifetime Qt Champion

    Just add the missing ; and go on with your build.

    I don't know why it's not there both the dev and latest 5.15 branch have it.



  • @SGaist OK, I changed swapBytes to m_swapBytes (which is how it appears everywhere else) and that went away. Now:

    88 |     { memcpy(this, &other, sizeof(QTransform)); }
        |                                              ^
    ../../../../include/QtGui/../../../../qtbase/src/gui/painting/qtransform.h:57:20: note: ‘class QTransform’ declared here
     57 | class Q_GUI_EXPORT QTransform
        |                    ^~~~~~~~~~
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncclient.cpp: In member function ‘void QVncClient::setPixelFormat()’:
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncclient.cpp:487:23: error: ‘qvnc_screen’ was not declared in this scope
    487 |         m_swapBytes = qvnc_screen->swapBytes();
        |                       ^~~~~~~~~~~
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncclient.cpp: In member function ‘bool QVncClient::pixelConversionNeeded() const’:
    /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())
        |         ^~~~~~~~~~~
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp: At global scope:
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:175:6: error: ‘QVNCScreen’ has not been declared
    175 | bool QVNCScreen::swapBytes() const
        |      ^~~~~~~~~~
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:175:30: error: non-member function ‘bool swapBytes()’ cannot have cv-qualifier
    175 | bool QVNCScreen::swapBytes() const
        |                              ^~~~~
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp: In function ‘bool swapBytes()’:
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:177:9: error: ‘depth’ was not declared in this scope
    177 |     if (depth() != 16)
        |         ^~~~~
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:180:9: error: ‘screen’ was not declared in this scope; did you mean ‘qGreen’?
    180 |     if (screen())
        |         ^~~~~~
        |         qGreen
    /opt/qt5/qtbase/src/plugins/platforms/vnc/qvncscreen.cpp:182:12: error: ‘frameBufferLittleEndian’ was not declared in this scope
    182 |     return frameBufferLittleEndian();
        |            ^~~~~~~~~~~~~~~~~~~~~~~
    gmake[5]: *** [Makefile:2889: .obj/qvncclient.o] Error 1
    gmake[5]: *** Waiting for unfinished jobs....
    

  • Lifetime Qt Champion

    Which version of Qt are you building ?

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



  • @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;
    }
    

  • Lifetime Qt Champion

    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.



  • @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.


  • Lifetime Qt Champion

    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.



  • @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
    

    ?


  • Lifetime Qt Champion

    @Michele31415 I think you missed:

    $ cd qt5
    $ git checkout 5.12
    

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



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


  • Lifetime Qt Champion

    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.



  • @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?



  • 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 $
    

  • Lifetime Qt Champion

    @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).


  • Lifetime Qt Champion

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



  • @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 $
    

  • Lifetime Qt Champion

    @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.


Log in to reply