Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.3.0 RC1, 5.3.1, 5.5.0, 5.12
-
eda28621f6c1a68774719f382be53ec109123b18 (qt/qtbase/wip/qt6)
Description
when trying to link qt libraries statically via the qt/cmake-integration, i get a lot of undefined symbols from harfbuzz and glib:
"_hb_unicode_funcs_create", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_eastasian_width_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_general_category_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_mirroring_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_compose_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_h_origin_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_h_advance_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_v_origin_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_extents_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_script_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_contour_point_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_destroy", referenced from: _hb_qt_font_funcs_t::~_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_blob_get_empty", referenced from: _hb_qt_reference_table(hb_face_t*, unsigned int, void*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_blob_create", referenced from: _hb_qt_reference_table(hb_face_t*, unsigned int, void*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_create", referenced from: _hb_qt_font_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_set_segment_properties", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_font_set_ppem", referenced from: _hb_qt_font_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_face_is_immutable", referenced from: _hb_qt_face_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_destroy", referenced from: _hb_unicode_funcs_t::~_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_get_glyph_infos", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_face_set_upem", referenced from: _hb_qt_face_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_v_kerning_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_face_set_index", referenced from: _hb_qt_face_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_name_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_allocation_successful", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_font_get_user_data", referenced from: hb_qt_font_get_use_design_metrics(hb_font_t*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_create", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_buffer_set_unicode_funcs", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_font_set_funcs", referenced from: _hb_qt_font_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_decompose_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_face_reference", referenced from: hb_qt_face_get_for_engine(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_from_name_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_clear_contents", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_buffer_guess_segment_properties", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_buffer_set_flags", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_shape_full", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_font_is_immutable", referenced from: _hb_qt_font_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_reverse", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_buffer_get_length", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_g_main_context_wakeup", referenced from: QEventDispatcherGlib::wakeUp() in libQt5Core_debug.a(qeventdispatcher_glib.o) "_hb_face_create_for_tables", referenced from: _hb_qt_face_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_destroy", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) _hb_qt_font_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) _hb_qt_font_release(void*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_decompose_compatibility_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_destroy", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_ot_tags_from_script", referenced from: QFontEngine::supportsScript(QChar::Script) const in libQt5Gui_debug.a(qfontengine.o) "_g_source_set_priority", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_hb_ot_layout_table_find_script", referenced from: QFontEngine::supportsScript(QChar::Script) const in libQt5Gui_debug.a(qfontengine.o) "_hb_font_funcs_set_glyph_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_g_source_destroy", referenced from: QEventDispatcherGlib::~QEventDispatcherGlib() in libQt5Core_debug.a(qeventdispatcher_glib.o) "_hb_buffer_pre_allocate", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_g_source_unref", referenced from: QEventDispatcherGlib::~QEventDispatcherGlib() in libQt5Core_debug.a(qeventdispatcher_glib.o) "_hb_font_funcs_create", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_buffer_add_utf16", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_hb_buffer_get_glyph_positions", referenced from: QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const in libQt5Gui_debug.a(qtextengine.o) "_g_source_add_poll", referenced from: QEventDispatcherGlib::registerSocketNotifier(QSocketNotifier*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_main_context_iteration", referenced from: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_main_context_pending", referenced from: QEventDispatcherGlib::hasPendingEvents() in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_source_remove_poll", referenced from: QEventDispatcherGlib::~QEventDispatcherGlib() in libQt5Core_debug.a(qeventdispatcher_glib.o) QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_source_set_can_recurse", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_hb_font_reference", referenced from: hb_qt_font_get_for_engine(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_g_main_context_pop_thread_default", referenced from: QEventDispatcherGlib::~QEventDispatcherGlib() in libQt5Core_debug.a(qeventdispatcher_glib.o) "_hb_font_set_scale", referenced from: _hb_qt_font_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_g_main_context_unref", referenced from: QEventDispatcherGlib::~QEventDispatcherGlib() in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_main_context_ref", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_main_context_default", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_hb_font_funcs_set_glyph_h_kerning_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_face_destroy", referenced from: QFontEngine::supportsScript(QChar::Script) const in libQt5Gui_debug.a(qfontengine.o) _hb_qt_face_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) _hb_qt_face_release(void*) in libQt5Gui_debug.a(qharfbuzzng.o) _hb_qt_font_create(QFontEngine*) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_funcs_set_glyph_v_advance_func", referenced from: _hb_qt_font_funcs_t::_hb_qt_font_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_font_set_user_data", referenced from: hb_qt_font_set_use_design_metrics(hb_font_t*, unsigned int) in libQt5Gui_debug.a(qharfbuzzng.o) "_hb_unicode_funcs_set_combining_class_func", referenced from: _hb_unicode_funcs_t::_hb_unicode_funcs_t() in libQt5Gui_debug.a(qharfbuzzng.o) "_g_main_context_new", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_main_context_push_thread_default", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_source_new", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o) "_g_source_attach", referenced from: QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*) in libQt5Core_debug.a(qeventdispatcher_glib.o)
while i can link to the libraries manually, it would be great if the generated cmake files could provide the usage requirements, so that user code 'just works' out of the box.
Attachments
Issue Links
- is duplicated by
-
QTBUG-47336 Link missing frameworks/libraries and flags in iOS CMake
- Closed
- is required for
-
QTBUG-47349 Link missing frameworks/libraries in OSX CMake for static Qt
- Closed
- relates to
-
QTBUG-76562 [cmake] cocoa platform plugin lacks usage requirements
- Closed
-
QTBUG-81401 CMake linking with Qt static build fails on win32/mingw platform
- Closed
-
QTBUG-78119 [REG 5.13.0-5.13.1] Broken CMake build for static libs (QMAKE_PRL_LIBS_FOR_CMAKE)
- Closed
-
QTBUG-75520 Incorrect CMake files generated
- Closed
- resulted in
-
QTBUG-73475 [REG 5.12-5.13] CMake/ActiveQt: LNK4044: unrecognized option '/lole32' (5.13-beta2)
- Closed