我有一台运行 Ubuntu 12.04 LTS 的服务器。
我想将服务器用于为 Android ARMv6 平台构建 Qt5。如何在无头服务器上执行此操作?
在 Ubuntu 12.04 LTS 上编译 Qt5 for Android 所需的步骤如下所述。为了方便起见,我假设下面的所有命令都在目录中运行/opt/qt5-android
。如果不是这种情况,您将需要相应地调整路径。
首先,您需要确保安装了适当的软件包:
sudo apt-get install build-essential openjdk-6-jdk
获取最新的 Android SDK:
wget http://dl.google.com/android/android-sdk_r21.1-linux.tgz
tar -xf android-sdk_r21.1-linux.tgz
SDK 不附带任何平台,因此您需要获取它们:
android-sdk-linux/tools/android update sdk --no-ui
获取最新版本的 NDK:
32 位 (i686):
wget http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86.tar.bz2
tar -xf android-ndk-r8e-linux-x86.tar.bz2
64 位 (amd64):
wget http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86_64.tar.bz2
tar -xf android-ndk-r8e-linux-x86_64.tar.bz2
现在克隆以下 Git 存储库:
git clone git://gitorious.org/qt/qt5.git qt5
cd qt5
perl init-repository --no-webkit
我们快要到了。现在我们需要configure
和make
Qt5:
./configure \
-developer-build \
-xplatform android-g++ \
-nomake tests \
-nomake examples \
-android-ndk /opt/qt5-android/android-ndk-r8e \
-android-sdk /opt/qt5-android/android-sdk-linux \
-skip qttools \
-skip qttranslations \
-skip qtwebkit \
-skip qtserialport \
-skip qtwebkit-examples-and-demos
make
就是这样!您现在应该最终得到一个适用于 Android 的 Qt5 版本。
参考:
我并不是想用一个答案来回应另一个答案,但这是我的第一篇文章:-(我认为这会阻止我在评论中发布这个。(所以认为它是对所述答案的引用,而不是对它)内森自己的上述答案对我来说并不完全有效。
我的配置行看起来更像这样:
./configure \
-developer-build -platform linux-g++-64 \
-xplatform android-g++ \
-nomake tests \
-nomake examples \
-android-ndk /opt/qt5-android/android-ndk-r8e \
-android-sdk /opt/qt5-android/android-sdk-linux \
-skip qttools \
-skip qttranslations \
-skip qtwebkit \
-skip qtserialport \
-android-ndk-host linux-x86_64
原因如下:
-skip qtwebkit-examples-and-demos
导致配置错误...不喜欢我跳过了无论如何都无法构建的东西(对不起,我丢失了确切的错误消息)
-android-ndk-host linux-x86_64
Can not detect the android host. Please use -android-ndk-host option to specify one
使用“ ”停止配置中止
-platform linux-g++-64
我是否对 configure 是否会在-m64
为我工作时添加标志或其他任何东西感到偏执
除了这个不同,内森的程序似乎很有效。我现在的本地环境建设(感谢您的提示,奥斯曼先生 :-)