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. Can't build Qt 6.0.0 due to MAX_PATH with shallow directory depth
QtWS25 Last Chance

Can't build Qt 6.0.0 due to MAX_PATH with shallow directory depth

Scheduled Pinned Locked Moved Solved Installation and Deployment
qt6build qtconfigure toolconfigurepath limit
4 Posts 2 Posters 1.5k Views
  • 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.
  • oblivioncthO Offline
    oblivioncthO Offline
    oblivioncth
    wrote on last edited by
    #1

    Hi,

    Moving to give Qt6 a whirl and I'm getting stuck at the configure step. Something is odd is happening with how the CMake scripts are manipulating some paths as I'm getting complaints that a few of the generated build directories are too deep for a few of the would-be object files, despite nearly building at a drive root.

    Setup:

    • Windows 10, MSVC2019, recent Python 3.X, Ruby, and ActivePerl installed and in PATH
    • Qt6 Sources at C:\qt-everywhere-src-6.0.0
    • Shadow build directory at C:\Q
    • Install output at C:\B

    Configuration Input:

    // Using MSVC2019 x64 Native Tools CMD
    cd C:\Q
    C:\qt-everywhere-src-6.0.0\configure.bat -static -debug-and-release -prefix C:\B -platform win32-msvc -opensource -confirm-license -skip webengine -nomake tools -nomake examples -nomake tests -static-runtime -opengl desktop -force-debug-info -optimize-size -no-pch -make-tool jom -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype
    

    Configuration Output:
    Full: https://pastebin.com/6Ph8t6Lv

    //...
    Qt is now configured for building. Just run 'cmake --build . --parallel'
    
    Once everything is built, you must run 'cmake --install .'
    Qt will be installed into 'C:/B'
    
    To configure and build other Qt modules, you can use the following convenience script:
            C:/B/bin/qt-configure-module.bat
    
    If reconfiguration fails for some reason, try to remove 'CMakeCache.txt' from the build directory
    
    -- Configuring done
    CMake Warning in qtquickcontrols2/src/imports/nativestyle/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/nativestyle/CMakeFiles/qtquickcontrols2nativestyleplugin_resources_qtquickcontrols2nativestyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 177 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/qtquicktimeline/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/basic/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/basic/CMakeFiles/qtquickcontrols2basicstyleplugin_resources_qtquickcontrols2basicstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 178 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/__/qtquicktimeline/qt_Qml_QQuickProfilerAdapterFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/fusion/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/fusion/CMakeFiles/qtquickcontrols2fusionstyleplugin_resources_qtquickcontrols2fusionstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 181 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/__/qtquick3d/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/fusion/impl/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/fusion/impl/CMakeFiles/qtquickcontrols2fusionstyleimplplugin_resources_qtquickcontrols2fusionstyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 194 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/__/__/qttools/qt_Qml_QTcpServerConnectionFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/imagine/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/imagine/CMakeFiles/qtquickcontrols2imaginestyleplugin_resources_qtquickcontrols2imaginestyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 184 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/__/qttools/qt_Qml_QQmlNativeDebugServiceFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/imagine/impl/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/imagine/impl/CMakeFiles/qtquickcontrols2imaginestyleimplplugin_resources_qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 197 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        .rcc/qmlcache/qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/material/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/material/CMakeFiles/qtquickcontrols2materialstyleplugin_resources_qtquickcontrols2materialstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 187 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/__/qttools/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/material/impl/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin_resources_qtquickcontrols2materialstyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 200 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        .rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/universal/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/universal/CMakeFiles/qtquickcontrols2universalstyleplugin_resources_qtquickcontrols2universalstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 190 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/__/qttools/qt_Qml_QQuickProfilerAdapterFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/universal/impl/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/universal/impl/CMakeFiles/qtquickcontrols2universalstyleimplplugin_resources_qtquickcontrols2universalstyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 203 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        .rcc/qmlcache/qtquickcontrols2universalstyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    CMake Warning in qtquickcontrols2/src/imports/controls/windows/CMakeLists.txt:
      The object file directory
    
        C:/Q/qtquickcontrols2/src/imports/controls/windows/CMakeFiles/qtquickcontrols2windowsstyleplugin_resources_qtquickcontrols2windowsstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
    
      has 184 characters.  The maximum full path to an object file is 250
      characters (see CMAKE_OBJECT_PATH_MAX).  Object file
    
        __/__/__/__/__/qttools/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
    
      cannot be safely placed under this directory.  The build may not work
      correctly.
    
    
    -- Generating done
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        BUILD_webengine
        INPUT_make_tool
    
    
    -- Build files have been written to: C:/Q
    

    (Seems like I'm getting tools whether I like it or not)

    As you can see there are issues with resultant paths being too long. I most likely don't need QtQuick in this build so I could just turn it off, but since -nomake-tools seems to be a placeholder at this point for Qt6 I can't get around the problematic files that come from the qttools directory.

    If I ignore all this and attempt to build anyway with:

    cmake --build . --parallel 10
    

    I get:

    ninja: error: Stat(qtquickcontrols2/src/imports/controls/imagine/impl/CMakeFiles/qtquickcontrols2imaginestyleimplplugin_resources_qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2.dir/Debug/.rcc/qmlcache/qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj): Filename longer than 260 characters
    

    a 283 character long path when including the drive letter and parent folder, so CMake definitely isn't lying.

    Not sure what I can do about this since I don't control the source directory layout, but at the same time I'm don't exactly believe that I'm not somehow doing something wrong and that this distribution is just simply unbuildable.

    I could try shortening the file names and using Notepad++ to replace all references to the original with the shorter name, but that seems... janky to say the least.

    oblivioncthO 1 Reply Last reply
    0
    • kkoehneK Offline
      kkoehneK Offline
      kkoehne
      Moderators
      wrote on last edited by
      #2

      I think this will be fixed in Qt 6.0.1: QTBUG-88581

      Director R&D, The Qt Company

      oblivioncthO 1 Reply Last reply
      3
      • kkoehneK kkoehne

        I think this will be fixed in Qt 6.0.1: QTBUG-88581

        oblivioncthO Offline
        oblivioncthO Offline
        oblivioncth
        wrote on last edited by
        #3

        @kkoehne
        Ah I see, so it is an issue with the source tree, but in particular with MSVC static builds.

        I guess I'll also playing around with a workaround for now as I'd like to make use of changes I sent upstream for 6 but I'm sure 6.0.1 shouldn't be too far behind since this is a little more than a minor issue.

        Thanks.

        1 Reply Last reply
        0
        • oblivioncthO oblivioncth

          Hi,

          Moving to give Qt6 a whirl and I'm getting stuck at the configure step. Something is odd is happening with how the CMake scripts are manipulating some paths as I'm getting complaints that a few of the generated build directories are too deep for a few of the would-be object files, despite nearly building at a drive root.

          Setup:

          • Windows 10, MSVC2019, recent Python 3.X, Ruby, and ActivePerl installed and in PATH
          • Qt6 Sources at C:\qt-everywhere-src-6.0.0
          • Shadow build directory at C:\Q
          • Install output at C:\B

          Configuration Input:

          // Using MSVC2019 x64 Native Tools CMD
          cd C:\Q
          C:\qt-everywhere-src-6.0.0\configure.bat -static -debug-and-release -prefix C:\B -platform win32-msvc -opensource -confirm-license -skip webengine -nomake tools -nomake examples -nomake tests -static-runtime -opengl desktop -force-debug-info -optimize-size -no-pch -make-tool jom -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype
          

          Configuration Output:
          Full: https://pastebin.com/6Ph8t6Lv

          //...
          Qt is now configured for building. Just run 'cmake --build . --parallel'
          
          Once everything is built, you must run 'cmake --install .'
          Qt will be installed into 'C:/B'
          
          To configure and build other Qt modules, you can use the following convenience script:
                  C:/B/bin/qt-configure-module.bat
          
          If reconfiguration fails for some reason, try to remove 'CMakeCache.txt' from the build directory
          
          -- Configuring done
          CMake Warning in qtquickcontrols2/src/imports/nativestyle/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/nativestyle/CMakeFiles/qtquickcontrols2nativestyleplugin_resources_qtquickcontrols2nativestyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 177 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/qtquicktimeline/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/basic/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/basic/CMakeFiles/qtquickcontrols2basicstyleplugin_resources_qtquickcontrols2basicstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 178 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/__/qtquicktimeline/qt_Qml_QQuickProfilerAdapterFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/fusion/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/fusion/CMakeFiles/qtquickcontrols2fusionstyleplugin_resources_qtquickcontrols2fusionstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 181 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/__/qtquick3d/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/fusion/impl/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/fusion/impl/CMakeFiles/qtquickcontrols2fusionstyleimplplugin_resources_qtquickcontrols2fusionstyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 194 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/__/__/qttools/qt_Qml_QTcpServerConnectionFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/imagine/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/imagine/CMakeFiles/qtquickcontrols2imaginestyleplugin_resources_qtquickcontrols2imaginestyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 184 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/__/qttools/qt_Qml_QQmlNativeDebugServiceFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/imagine/impl/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/imagine/impl/CMakeFiles/qtquickcontrols2imaginestyleimplplugin_resources_qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 197 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              .rcc/qmlcache/qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/material/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/material/CMakeFiles/qtquickcontrols2materialstyleplugin_resources_qtquickcontrols2materialstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 187 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/__/qttools/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/material/impl/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin_resources_qtquickcontrols2materialstyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 200 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              .rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/universal/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/universal/CMakeFiles/qtquickcontrols2universalstyleplugin_resources_qtquickcontrols2universalstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 190 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/__/qttools/qt_Qml_QQuickProfilerAdapterFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/universal/impl/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/universal/impl/CMakeFiles/qtquickcontrols2universalstyleimplplugin_resources_qtquickcontrols2universalstyleimplplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 203 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              .rcc/qmlcache/qtquickcontrols2universalstyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          CMake Warning in qtquickcontrols2/src/imports/controls/windows/CMakeLists.txt:
            The object file directory
          
              C:/Q/qtquickcontrols2/src/imports/controls/windows/CMakeFiles/qtquickcontrols2windowsstyleplugin_resources_qtquickcontrols2windowsstyleplugin_qml_files_resource_2.dir/${CONFIGURATION}/
          
            has 184 characters.  The maximum full path to an object file is 250
            characters (see CMAKE_OBJECT_PATH_MAX).  Object file
          
              __/__/__/__/__/qttools/qt_Qml_QQmlNativeDebugConnectorFactory.cpp.obj
          
            cannot be safely placed under this directory.  The build may not work
            correctly.
          
          
          -- Generating done
          CMake Warning:
            Manually-specified variables were not used by the project:
          
              BUILD_webengine
              INPUT_make_tool
          
          
          -- Build files have been written to: C:/Q
          

          (Seems like I'm getting tools whether I like it or not)

          As you can see there are issues with resultant paths being too long. I most likely don't need QtQuick in this build so I could just turn it off, but since -nomake-tools seems to be a placeholder at this point for Qt6 I can't get around the problematic files that come from the qttools directory.

          If I ignore all this and attempt to build anyway with:

          cmake --build . --parallel 10
          

          I get:

          ninja: error: Stat(qtquickcontrols2/src/imports/controls/imagine/impl/CMakeFiles/qtquickcontrols2imaginestyleimplplugin_resources_qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2.dir/Debug/.rcc/qmlcache/qtquickcontrols2imaginestyleimplplugin_qml_files_resource_2/qmlcache_loader.cpp.obj): Filename longer than 260 characters
          

          a 283 character long path when including the drive letter and parent folder, so CMake definitely isn't lying.

          Not sure what I can do about this since I don't control the source directory layout, but at the same time I'm don't exactly believe that I'm not somehow doing something wrong and that this distribution is just simply unbuildable.

          I could try shortening the file names and using Notepad++ to replace all references to the original with the shorter name, but that seems... janky to say the least.

          oblivioncthO Offline
          oblivioncthO Offline
          oblivioncth
          wrote on last edited by
          #4

          @oblivioncth I can confirm that this was fixed in 6.0.1

          1 Reply Last reply
          2

          • Login

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