QT Windows 到 Android 必要项目更改
QT Windows to Android necessity project changes
我有一个使用 Crypto++、OpenSSL 和 QT 5.5.1 框架的项目。它适用于带有 MSVC 12.0 编译器的 x86 Qindows。
现在我想在 android 虚拟设备 Nexus S 上 运行 这个项目。我已经为 armebi 安装了 JDK、SDK、NDK、运行ed Nexus S Android armv5.
架构、GCC 4.9 编译器和 QT 5.5.1
Android 虚拟设备 (AVD) 启动并且 运行 一些示例成功,但我的程序不是 运行ning 以相同的方式。这是 .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: error: error: /MD: No such file or directory
是否有必要为 GCC 4.9 编译器编译 cryptopp 和 openssl 库以及 /MD 和 /MT 选项会发生什么情况(它们仍然可用于 android)?整个代码可见here(第二版)
Is it necessary to compile cryptopp and openssl libraries for GCC 4.9 compiler
是的。您可以在该环境下设置QT 项目来编译Crypto++。或者,请参阅 Crypto++ wiki 上的 Android (Command Line)。
QMAKE_CXXFLAGS_RELEASE += /MD
QMAKE_CXXFLAGS_DEBUG += /MDd
...
:-1: error: error: /MD: No such file or directory
这是一个 Windows 编译器链接器开关。 /MD
指定与 Multithreaded DLL version of the runtime library 的链接。您不应该将它用于 Android 项目。
听起来您需要向您的 QT 项目添加新配置。最好的办法可能是创建一个新的 QT 项目并将它们分开。
我相信 Wei Dai 的 GitHub 有一个 Android.mk
的拉取请求。我们希望最终将它合并到库中。参见 Add Android.mk to build using android NDK。 (Wei 是 Crypto++ 的作者)
我有一个使用 Crypto++、OpenSSL 和 QT 5.5.1 框架的项目。它适用于带有 MSVC 12.0 编译器的 x86 Qindows。
现在我想在 android 虚拟设备 Nexus S 上 运行 这个项目。我已经为 armebi 安装了 JDK、SDK、NDK、运行ed Nexus S Android armv5.
架构、GCC 4.9 编译器和 QT 5.5.1Android 虚拟设备 (AVD) 启动并且 运行 一些示例成功,但我的程序不是 运行ning 以相同的方式。这是 .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: error: error: /MD: No such file or directory
是否有必要为 GCC 4.9 编译器编译 cryptopp 和 openssl 库以及 /MD 和 /MT 选项会发生什么情况(它们仍然可用于 android)?整个代码可见here(第二版)
Is it necessary to compile cryptopp and openssl libraries for GCC 4.9 compiler
是的。您可以在该环境下设置QT 项目来编译Crypto++。或者,请参阅 Crypto++ wiki 上的 Android (Command Line)。
QMAKE_CXXFLAGS_RELEASE += /MD QMAKE_CXXFLAGS_DEBUG += /MDd
...
:-1: error: error: /MD: No such file or directory
这是一个 Windows 编译器链接器开关。 /MD
指定与 Multithreaded DLL version of the runtime library 的链接。您不应该将它用于 Android 项目。
听起来您需要向您的 QT 项目添加新配置。最好的办法可能是创建一个新的 QT 项目并将它们分开。
我相信 Wei Dai 的 GitHub 有一个 Android.mk
的拉取请求。我们希望最终将它合并到库中。参见 Add Android.mk to build using android NDK。 (Wei 是 Crypto++ 的作者)