QT Windows для Android необходимости изменения проекта

У меня есть проект, который использует Crypto++, OpenSSL и QT 5.5.1 Framework. Это для x86 Qindows с компилятором MSVC 12.0.

Теперь я хочу запустить этот проект на виртуальном устройстве Android Nexus S. Я установил JDK, SDK, NDK, запустил Nexus S для архитектуры armebi, компилятор GCC 4.9 и QT 5.5.1 для Android armv5.

Виртуальное устройство Android (AVD) запускается и успешно запускает некоторые примеры, но моя программа работает не так. Вот файл.pro:

#-------------------------------------------------
#
# Project created by QtCreator 2015-11-20T12:41:07
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = EPsimple
TEMPLATE = app

SOURCES += main.cpp\
    mainwindow.cpp \
    statusdialog.cpp \
    model.cpp \
    logindialog.cpp \
    threadedcontroller.cpp

HEADERS  += mainwindow.h \
    statusdialog.h \
    model.h \
    logindialog.h \
    threadedcontroller.h

FORMS    += mainwindow.ui \
    statusdialog.ui \
    logindialog.ui

INCLUDEPATH += C:\OpenSSL-Win32\include
INCLUDEPATH += C:\Users\niki\Downloads\cryptopp563rc5-1

debug{
LIBS += -LC:\Users\niki\Downloads\cryptopp563rc5-1\Win32\Output\Release \
-lcryptlib
LIBS += -LC:\OpenSSL-Win32\lib\VC \
-llibeay32MDd
}

release{
LIBS += -LC:\Users\niki\Downloads\cryptopp563rc5-1\Win32\Output\Debug \
-lcryptlib
LIBS += -LC:\OpenSSL-Win32\lib\VC \
-llibeay32MD
}

QMAKE_CXXFLAGS_RELEASE += /MD
QMAKE_CXXFLAGS_DEBUG += /MDd
#QMAKE_LFLAGS += /STACK:32000000
#QMAKE_LFLAGS += /HEAP:32000000

Возникает следующая ошибка:

: -1: ошибка: ошибка: /MD: нет такого файла или каталога

Нужно ли компилировать библиотеки cryptopp и openssl для компилятора GCC 4.9 и что будет с параметрами / MD и /MT (они все еще доступны для Android)? Весь код можно увидеть здесь (вторая версия).

1 ответ

Решение

Нужно ли компилировать библиотеки cryptopp и openssl для компилятора GCC 4.9?

Да. Вы можете настроить проект QT для компиляции Crypto++ в среде. Или см. Android (Командная строка) в вики Crypto++.


QMAKE_CXXFLAGS_RELEASE += /MD
QMAKE_CXXFLAGS_DEBUG += /MDd

...
: -1: ошибка: ошибка: /MD: нет такого файла или каталога

Это переключатель компилятора Windows. /MD указывает на связь с многопоточной DLL-версией библиотеки времени выполнения. Вы не должны использовать его для проекта Android.

Похоже, вам нужно добавить новую конфигурацию в ваш проект QT. Лучше всего, вероятно, создать новый проект QT и держать их отдельно.

Я считаю, что GitHub Вэй Дай имеет запрос на получение Android.mk, Мы хотим включить это в библиотеку в конце концов. См. Добавление Android.mk для сборки с использованием Android NDK. (Вэй является автором Crypto++).

Другие вопросы по тегам