Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-89549

Linker error when building Qt 6 statically with cmake + clang on Windows

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • 6.2.0
    • 6.0.0
    • Build System: CMake
    • None
    • llvm+clang 11
      Windows 10 (x86_64)
      cmake 3.19.1
    • Windows
    • 601a99dcf50a88879c4ada692574dd2ce35fe21a (qt/tqtc-qtbase/6.2.0)

    Description

      I'm trying to compile qtbase 6.0.0 with cmake and a custom-built clang on Windows.

      I get linker errors when building the tools (e.g. uic.exe):

      [889/1714] Linking CXX executable bin\uic.exe
      FAILED: bin/uic.exe
      cmd.exe /C "cd . && D:\User\Adrian\Programmierung\3rdParty\qtbase_6.0\Clang-Windows\bin\clang++.exe -DNDEBUG -O2 -Xlinker -static -Wl,--gc-sections src/tools/uic/CMakeFiles/uic.dir/uic_autogen/mocs_compilation.cpp.obj src/tools/uic/CMakeFiles/uic.dir/cpp/cppwritedeclaration.cpp.obj src/tools/uic/CMakeFiles/uic.dir/cpp/cppwriteincludes.cpp.obj src/tools/uic/CMakeFiles/uic.dir/cpp/cppwriteinitialization.cpp.obj src/tools/uic/CMakeFiles/uic.dir/customwidgetsinfo.cpp.obj src/tools/uic/CMakeFiles/uic.dir/databaseinfo.cpp.obj src/tools/uic/CMakeFiles/uic.dir/driver.cpp.obj src/tools/uic/CMakeFiles/uic.dir/main.cpp.obj src/tools/uic/CMakeFiles/uic.dir/python/pythonwritedeclaration.cpp.obj src/tools/uic/CMakeFiles/uic.dir/python/pythonwriteimports.cpp.obj src/tools/uic/CMakeFiles/uic.dir/shared/language.cpp.obj src/tools/uic/CMakeFiles/uic.dir/treewalker.cpp.obj src/tools/uic/CMakeFiles/uic.dir/ui4.cpp.obj src/tools/uic/CMakeFiles/uic.dir/uic.cpp.obj src/tools/uic/CMakeFiles/uic.dir/validator.cpp.obj -o bin\uic.exe -Wl,--out-implib,src\tools\uic\libuic.dll.a -Wl,--major-image-version,0,--minor-image-version,0  src/tools/uic/CMakeFiles/uic_rc.dir/./uic_resource.rc.obj  lib/libQt6Core.a  lib/libQt6Core.a  lib/libQt6Core_qobject.a  -lmpr  -luserenv  -ladvapi32  -lkernel32  -lnetapi32  -lole32  -lshell32  -luser32  -luuid  -lversion  -lwinmm  -lws2_32  lib/libQt6BundledPcre2.a  src/corelib/CMakeFiles/Core_resources_mimetypes.dir/./.rcc/qrc_mimetypes.cpp.obj  -lunwind  -lunwind  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
      lld: error: unknown argument: -static
      clang++: error: linker command failed with exit code 1 (use -v to see invocation)
      

      Here's my cmake invocation:

      cmake -B build -G Ninja ^
        -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ^
        -DCMAKE_INSTALL_PREFIX=%~dp0inst ^
        -DCMAKE_BUILD_TYPE=Release ^
        -DFEATURE_static_runtime=ON ^
        -DBUILD_SHARED_LIBS=OFF -DFEATURE_SHARED=OFF -DBUILD_WITH_PCH=OFF ^
        -DQT_BUILD_TESTS=OFF -DQT_BUILD_EXAMPLES=OFF
      

       I'm not quite sure if this is a problem with Qt, CMake or lld, but the CMake+llvm toolchain generally works.

      Thanks for your help.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            jbornema Joerg Bornemann
            geier Adrian Ebeling
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes