Библиотека QT импортирована в iOS родной SDK - PullRequest
0 голосов
/ 02 мая 2019

Таким образом, план этого проекта состоит в том, чтобы иметь библиотеку QT, которую можно использовать в собственном SDK.Мы создали фиктивную библиотеку, которая при импорте в приложение QT в xcodeproj работает без проблем.

Библиотека статическая, работает lipo -info, возвращает x86_64 arm64.

Я использовал учебник из https://alediaferia.com/2014/12/18/a-native-ios-app-with-a-qt-third-party-library/, но застрял.Немного покопавшись, я добрался до шага, где происходит связывание. Вот результат:

Undefined symbols for architecture arm64:
  "_pcre2_match_16", referenced from:
      safe_pcre2_match_16(pcre2_real_code_16 const*, unsigned short const*, int, int, int, pcre2_real_match_data_16*, pcre2_real_match_context_16*) in libQt5Core.a(qregularexpression.o)
  "_pcre2_match_context_create_16", referenced from:
      QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
  "_pcre2_jit_stack_assign_16", referenced from:
      QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
  "_pcre2_jit_stack_free_16", referenced from:
      QThreadStorage<QPcreJitStackPointer*>::deleteData(void*) in libQt5Core.a(qregularexpression.o)
  "_pcre2_get_ovector_pointer_16", referenced from:
      QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
  "_pcre2_match_data_free_16", referenced from:
      QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
  "_pcre2_config_16", referenced from:
      QRegularExpressionPrivate::getPatternInfo() in libQt5Core.a(qregularexpression.o)
  "_pcre2_pattern_info_16", referenced from:
      QRegularExpressionPrivate::getPatternInfo() in libQt5Core.a(qregularexpression.o)
      QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
  "_pcre2_jit_compile_16", referenced from:
      QRegularExpressionPrivate::optimizePattern() in libQt5Core.a(qregularexpression.o)
  "_pcre2_match_context_free_16", referenced from:
      QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
  "_pcre2_compile_16", referenced from:
      QRegularExpressionPrivate::compilePattern() in libQt5Core.a(qregularexpression.o)
  "_pcre2_code_free_16", referenced from:
      QRegularExpressionPrivate::~QRegularExpressionPrivate() in libQt5Core.a(qregularexpression.o)
      QRegularExpressionPrivate::compilePattern() in libQt5Core.a(qregularexpression.o)
  "_pcre2_jit_stack_create_16", referenced from:
      safe_pcre2_match_16(pcre2_real_code_16 const*, unsigned short const*, int, int, int, pcre2_real_match_data_16*, pcre2_real_match_context_16*) in libQt5Core.a(qregularexpression.o)
  "_pcre2_match_data_create_from_pattern_16", referenced from:
      QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
  "_uncompress", referenced from:
      qUncompress(unsigned char const*, int) in libQt5Core.a(qbytearray.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

The current linker flags

Как выглядит проект:

The project structure.

Кто-нибудь знает, что происходит?

1 Ответ

1 голос
/ 02 мая 2019

Вам не хватает ссылки на libqtpcre2

Добавить

-lqtpcre2 

в ваши "ДРУГИЕ ФЛАГИ LINKER" в "настройках сборки" xcode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...