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

Can't link against static Qt5 (missing usage requirements for static libs wrt harfbuzz/glib/others)

    XMLWordPrintable

Details

    • 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

        1. Qt5Core.prl
          8 kB
        2. configLog2017.txt
          415 kB
        3. configLog2015.txt
          355 kB

        Issue Links

          Activity

            People

              alexandru.croitor Alexandru Croitor
              timblechmann tim blechmann
              Votes:
              28 Vote for this issue
              Watchers:
              48 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: