asyaevloeva
@asyaevloeva

Как подключить библиотеку boost для Android в Qt?

Я скачала CrystaX NDK, как я поняла, там имеются уже сбилженные библиотеки, которые нужно только подключить.
И я их вроде подключила
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = qt_test
TEMPLATE = app

INCLUDEPATH += C:/qt_projects/-----X-----/boost/1.59.0/include
LIBS += C:/qt_projects/-----X-----/boost/1.59.0/libs

DEFINES += QT_DEPRECATED_WARNINGS

CONFIG += c++14

SOURCES += main.cpp\
        mainwindow.cpp \
    graph.cpp \
    textrank.cpp

HEADERS  += mainwindow.h \
    graph.hpp \
    textrank.hpp

FORMS    += mainwindow.ui

contains(ANDROID_TARGET_ARCH,x86) {
    ANDROID_EXTRA_LIBS = \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_atomic.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_chrono.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_container.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_context.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_coroutine.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_date_time.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_filesystem.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_graph.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_iostreams.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_locale.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_log.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_log_setup.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_math_c99.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_math_c99f.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_math_c99l.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_math_tr1.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_math_tr1f.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_math_tr1l.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_prg_exec_monitor.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_program_options.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_python.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_python3.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_random.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_regex.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_serialization.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_signals.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_system.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_thread.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_timer.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_unit_test_framework.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_wave.so \
        C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/libboost_wserialization.so
}

но появляются странные ошибки

17d4b1fb998d453c94cf27d836dc4841.jpg

не могу понять, почему permission denied, вроде бы с правами все ок
и от переноса папки boost тоже ничего не меняется

Видимо я что-то не так подключила(?) Подскажите, как это исправить
  • Вопрос задан
  • 885 просмотров
Решения вопроса 1
@Ariox41
Под android не работал, но судя по всему строка
LIBS += C:/qt_projects/-----X-----/boost/1.59.0/libs
лишняя.

Возможно, ниже нужно писать что-то вроде
contains(ANDROID_TARGET_ARCH,x86) {
    ANDROID_EXTRA_LIBS += \
        L"C:/qt_projects/-----X-----/boost/1.59.0/libs/x86/gnu-5/" \
        lboost_atomic \
        lboost_chrono \
        ..........
}
по аналогии со стандартным для qmake добавлением в LIBS (Lпуть - путь к каталогу с либами, lназвание - название библиотеки без lib и .so)

Также не стоит подключать все либы boost сразу, большая часть вам не нужна.

И да, boost и Qt отлично друг с другом уживаются.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zifix
@Zifix Куратор тега Qt
Barbatum
Вы можете внятно объяснить, зачем вам мешать boost и Qt?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы