Skip to content

Qt6 static linking with cmake. #26684

@Alexpux

Description

@Alexpux

Description / Steps to reproduce the issue

There are couples of problems link applications with static Qt: using import library for harfbuzz instead staic library (probably hardcoded somewhere) and tiff library linkage. Test project in attach

Qt6CmakeStaticTest.zip

Expected behavior

Successful link of application

Actual behavior

[5/5 1.5/sec] Linking CXX executable Qt6CmakeStaticTest.exe
FAILED: [code=1] Qt6CmakeStaticTest.exe 
C:\WINDOWS\system32\cmd.exe /C "cd . && D:\msys64\clang64\bin\clang++.exe -DQT_QML_DEBUG -g -mwindows -static -Xlinker -Bstatic -Wl,--gc-sections @CMakeFiles\Qt6CmakeStaticTest.rsp -o Qt6CmakeStaticTest.exe -Wl,--out-implib,libQt6CmakeStaticTest.dll.a -Wl,--major-image-version,0,--minor-image-version,0 && cd ."
ld.lld: error: undefined symbol: jbg_dec_init
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)

ld.lld: error: undefined symbol: jbg_newlen
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)

ld.lld: error: undefined symbol: jbg_dec_in
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)

ld.lld: error: undefined symbol: jbg_strerror
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)

ld.lld: error: undefined symbol: jbg_dec_free
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)

ld.lld: error: undefined symbol: jbg_dec_getsize
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)

ld.lld: error: undefined symbol: jbg_dec_getimage
>>> referenced by libtiff.a(tif_jbig.o):(JBIGDecode)

ld.lld: error: undefined symbol: jbg_enc_init
>>> referenced by libtiff.a(tif_jbig.o):(JBIGEncode)

ld.lld: error: undefined symbol: jbg_enc_out
>>> referenced by libtiff.a(tif_jbig.o):(JBIGEncode)

ld.lld: error: undefined symbol: jbg_enc_free
>>> referenced by libtiff.a(tif_jbig.o):(JBIGEncode)

ld.lld: error: undefined symbol: libdeflate_free_compressor
>>> referenced by libtiff.a(tif_zip.o):(ZIPVSetField)
>>> referenced by libtiff.a(tif_zip.o):(ZIPCleanup)
>>> referenced by libtiff.a(tif_lerc.o):(LERCVSetField)
>>> referenced 1 more times

ld.lld: error: undefined symbol: libdeflate_alloc_decompressor
>>> referenced by libtiff.a(tif_zip.o):(ZIPDecode)
>>> referenced by libtiff.a(tif_lerc.o):(LERCPreDecode)

ld.lld: error: undefined symbol: libdeflate_zlib_decompress
>>> referenced by libtiff.a(tif_zip.o):(ZIPDecode)
>>> referenced by libtiff.a(tif_lerc.o):(LERCPreDecode)

ld.lld: error: undefined symbol: libdeflate_alloc_compressor
>>> referenced by libtiff.a(tif_zip.o):(ZIPEncode)
>>> referenced by libtiff.a(tif_lerc.o):(LERCPostEncode)

ld.lld: error: undefined symbol: libdeflate_zlib_compress_bound
>>> referenced by libtiff.a(tif_zip.o):(ZIPEncode)
>>> referenced by libtiff.a(tif_lerc.o):(LERCPostEncode)

ld.lld: error: undefined symbol: libdeflate_zlib_compress
>>> referenced by libtiff.a(tif_zip.o):(ZIPEncode)
>>> referenced by libtiff.a(tif_lerc.o):(LERCPostEncode)

ld.lld: error: undefined symbol: libdeflate_free_decompressor
>>> referenced by libtiff.a(tif_zip.o):(ZIPCleanup)
>>> referenced by libtiff.a(tif_lerc.o):(LERCCleanup)

ld.lld: error: undefined symbol: lzma_lzma_preset
>>> referenced by libtiff.a(tif_lzma.o):(TIFFInitLZMA)
>>> referenced by libtiff.a(tif_lzma.o):(LZMAVSetField)

ld.lld: error: undefined symbol: lzma_stream_encoder
>>> referenced by libtiff.a(tif_lzma.o):(LZMAVSetField)
>>> referenced by libtiff.a(tif_lzma.o):(LZMAPreEncode)

ld.lld: error: undefined symbol: lzma_end
>>> referenced by libtiff.a(tif_lzma.o):(LZMASetupDecode)
>>> referenced by libtiff.a(tif_lzma.o):(LZMASetupEncode)
>>> referenced by libtiff.a(tif_lzma.o):(LZMACleanup)

ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Verification

Windows Version

MSYS_NT-10.0-26200

MINGW environments affected

  • MINGW64
  • MINGW32
  • UCRT64
  • CLANG64
  • CLANGARM64

Are you willing to submit a PR?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions