Important: Please read the Qt Code of Conduct -

Missing ("convenience") headers after building and installing

  • Hello,

    I'm doing a shadow build on Windows/VS2013 by switching to qtsrc\build_dev, then calling ..\configure -... and nmake from there.
    This puts everything (bin, lib, include etc.) into \build_dev.

    With Qt 5.5 I also ran nmake install afterwards.
    This put additional files into build_dev, like additional includes and mkspecs (required for VS add-in) from qtsrc root.
    Especially, there were these "convenience" headers now (those without extension), for example qtsrc\build_dev\qtbase\include\QtCore\QDate.
    This is nice because I can just write #include <QDate>.

    Now I'm doing the same with Qt 5.8 but after nmake install, no additional headers are put into build_dev (mkspecs are copied though)!
    So I'm missing the "convenience" headers and I have to write #include <qdatetime.h> instead..

    What am I doing wrong? Did something change regarding that with Qt >5.5?

    Thank you.

  • What I found is that there are differences in a makefile, specifically:


    In Qt5.5.1, there are entries like this:

    ####### Install
    install_class_headers: first FORCE
    @if not exist D:$(INSTALL_ROOT)\Programming\Libraries\Qt\build_dev\qtbase\include\QtCore mkdir D:$(INSTALL_ROOT)\Programming\Libraries\Qt\build_dev\qtbase\include\QtCore & if not exist D:$(INSTALL_ROOT)\Programming\Libraries\Qt\build_dev\qtbase\include\QtCore exit 1
    -$(INSTALL_FILE) D:\Programming\Libraries\Qt\qtbase\include\QtCore\QAbstractAnimation D:$(INSTALL_ROOT)\Programming\Libraries\Qt\build_dev\qtbase\include\QtCore
    -$(INSTALL_FILE) D:\Programming\Libraries\Qt\qtbase\include\QtCore\QAnimationDriver D:$(INSTALL_ROOT)\Programming\Libraries\Qt\build_dev\qtbase\include\QtCore
    -$(INSTALL_FILE) D:\Programming\Libraries\Qt\qtbase\include\QtCore\QAnimationGroup D:$(INSTALL_ROOT)\Programming\Libraries\Qt\build_dev\qtbase\include\QtCore
    -$(INSTALL_FILE) D:\Programming\Libraries\Qt\qtbase\include\QtCore\QDate D:$(INSTALL_ROOT)\Programming\Libraries\Qt\build_dev\qtbase\include\QtCore

    In Qt5.8.0 these are missing entirely:

    ####### Install
    install:  FORCE
    uninstall:  FORCE

    Does anyone know why and how I could install the headers correctly anyway?

  • Lifetime Qt Champion


    What parameters did you pass to configure ?

  • Hi,

    I just tried with Qt 5.7.1 and it's the same issue.

    5.7.1 configuration:

    ..\configure -I D:\Programming\Libraries\OpenSSL\inc -L D:\Programming\Libraries\OpenSSL\lib\32\dyn OPENSSL_LIBS="-luser32 -ladvapi32 -lgdi32" OPENSSL_LIBS_DEBUG="-lssleayMDd -llibeayMDd" OPENSSL_LIBS_RELEASE="-lssleayMDd -llibeayMDd"
    -opensource -confirm-license -debug -platform win32-msvc2013 -mp -nomake examples -nomake tests -no-compile-examples
    -openssl-linked -qt-libpng -qt-libjpeg
    -no-sql-sqlite -no-opengl -no-iconv -no-evdev -no-mtdev -no-inotify -no-eventfd -no-angle -no-incredibuild-xge -no-libproxy -no-dbus -no-wmf-backend -no-qml-debug -no-native-gestures -no-nis -no-cups
    -skip qtmultimedia -skip qtsvg -skip qtwebsockets -skip qtwinextras -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qttranslations -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtx11extras -skip qtxmlpatterns

    I used nearly the same config options for 5.5.1, modified just a few module skips.
    (Everything but qtbase and qttools is skipped)

  • Lifetime Qt Champion

    From which folder are you calling configure ?

  • I've stated this already in the original post.

    I'm calling ..\configure & nmake & nmake install from D:\Programming\Libraries\Qt\build_dev\

    I'm using exactly the same steps for Qt 5.5.1 and 5.7.1. But nmake install doesn't copy headers with 5.7.1.

  • Lifetime Qt Champion

    It wasn't really clear that qtsrc was the root of the sources since all the source package uncompress in a way longer folder name.

    In any case, a real shadow build is outside the sources.

    If you want to have everything in the build folder then your have to add the -prefix option pointing to the build folder also.

  • Ahh, thanks. I really had to use -prefix (never used it before because it wasn't necessary..).

Log in to reply