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++).