我刚刚安装了SDK
,NDK
,JDK
。
当我输入终端时:
moroz @ moroz:〜/ qt / qt5 $
./configure -developer-build -opensource -confirm-license -xplatform android-g++ -nomake tests -nomake examples -android-ndk android-ndk-r9/ -android-sdk android-sdk-linux/ -android-ndk-host linux-x86_64 -android-toolchain-version 4.8 -skip qttranslations -skip qtwebkit -skip qtserialport -skip qtwebkit-examples
然后
moroz @ moroz:〜/ qt / qt5 $
/home/moroz/qt/qt5/qtbase/configure -top-level -developer-build -opensource -confirm-license -xplatform android-g++ -nomake tests -nomake examples -android-ndk android-ndk-r9/ -android-sdk android-sdk-linux/ -android-ndk-host linux-x86_64 -android-toolchain-version 4.8 -skip qttranslations -skip qtwebkit -skip qtserialport -skip qtwebkit-examples
我遇到了以下错误:
Can not detect Android NDK toolchain. Please use -android-toolchain-version to specify
Mac和Ubuntu上也有相同的消息!
答案 0 :(得分:1)
你应该使用
-android-ndk-host darwin-x86_64
它在ndkfolder / prebuilt中解析-android-ndk-host /(我有darwin-x86_x64,android-arm,android-mips,android-x86,常用)
答案 1 :(得分:0)
i7中存在问题。它将处理器架构显示为i386(32位),但硬件显示为x84_64(64位)。
$ uname -p
i386
$ uname -m
x86_64
-m打印机器硬件名称。
-p打印机器处理器体系结构名称。
必须破解qtbase / configure文件才能返回x86_64
macx-g++-64)
PLATFORM=macx-g++
NATIVE_64_ARCH=
case `uname -p` in
i386) NATIVE_64_ARCH="x86_64" ;;
powerpc) NATIVE_64_ARCH="ppc64" ;;
*) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
esac
if [ ! -z "$NATIVE_64_ARCH" ]; then
QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
fi
;;
esac
另一个解决方案是下载32位Android NDK并使用darwin-x86作为主机名。
答案 2 :(得分:0)
我是我的情况我指定了ndk的相对路径 - 相同的错误,在提供完整路径后,它就完成了它的工作。
答案 3 :(得分:0)
1)如何在macOS上构建OpenSSL:
要使用 macOS 主机为arm,arm-v7a和x86构建OpenSSL Android库,如果您使用 Android NDK r10e ,此脚本将非常有用:
**将库复制到Qt应用程序的项目文件夹:**
platform/ └── android └── lib └── openssl ├── README.md ├── android-openssl-vsts.webloc ├── arch-armeabi-v7a │ ├── libcrypto.a │ ├── libcrypto.so │ ├── libssl.a │ └── libssl.so └── arch-x86 ├── libcrypto.a ├── libcrypto.so ├── libssl.a └── libssl.so
2)将Qt yourapp.pro项目文件添加到:
android { # Android >= 6.0 requires apps to install their own libcrypto.so and libssl.so # https://subsite.visualstudio.com/DefaultCollection/android-openssl equals(ANDROID_TARGET_ARCH, armeabi-v7a) { ANDROID_EXTRA_LIBS += $$files($${PWD}/platform/android/lib/openssl/arch-armeabi-v7a/*.so) } equals(ANDROID_TARGET_ARCH, x86) { ANDROID_EXTRA_LIBS += $$files($${PWD}/platform/android/lib/openssl/arch-x86/*.so) } }
我浪费了很多时间试图在Linux和macOS上构建OpenSLL,直到找到该脚本,并弄清楚我需要使用Android NDK r10e或更早版本进行构建。
Qt Adding OpenSSL Support for Android指南对我不起作用。但是,如果我已还原到NDK r10e ,它可能会起作用。
我希望这可以节省一些时间。