[PyQt] pyqtdeploy Demo cross-compiling -- setting up android sysroot

Phil Thompson phil at riverbankcomputing.com
Thu Feb 7 09:32:05 GMT 2019


On 6 Feb 2019, at 10:28 pm, alan moore <me at alandmoore.com> wrote:
> 
> On 2/4/19 4:25 PM, Phil Thompson wrote:
>> On 4 Feb 2019, at 8:17 pm, me at alandmoore.com wrote:
>>> Having successfully worked through compiling the pyqtdeploy demo for my own platform, I'm attempting to work through the process of cross-compiling for Android.
>>> 
>>> I'm currently stuck on getting the sysroot built.
>>> 
>>> My questions are:
>>> 
>>> 1. in the included sysroot.json, the "qtdir" variable is set to "android_armv7".  I had installed the Android Qt binaries via the AUR using android-armv7a-eabi-qt5, and adjusted qtdir to 'armv7a-eabi' to match what was shipped in that package.  This may be what's messing me up, but these were the only Qt binaries for android I could find available for Arch.  Do I need to compile my own or should this work?
>> The Qt binaries for Android are downloaded using the Qt maintenance tool. No other binaries are supported.
>> 
>>> 2. I'm specifying "android" as the build target, which begins building an android-32 sysroot.  How do I specify android 64 bit?  I tried "android-64", "android64", "android_arm64" and other variations, but the only one that works is "android".  Is there a list of valid values for --target?
>> Only 32-bit Android is supported at the moment. The Qt v5.12 binaries now include 64-bit Android support so that will be added in the next version of pyqtdeploy.
>> 
>> Phil
> 
> Thanks for your response; I guess that's what I get for relying on the package manager.  I have downloaded the correct Qt binaries and reset my sysroot.json to the default.  My build command still dies on the same error on the first compile step, though:
> 
> make[1]: arm-linux-androideabi-gcc: Command not found
> 
> Apparently I don't have the right compiler installed; is this command supposed to be in the NDK downloads?  Or should this be something I should have installed on my system via the package manager?  I couldn't find a package for my distro that contained this binary.  Can I (or should I)  override it with a different android/arm compiler command?

You need to install the relevant NDK and SDK from Google. pyqtdeploy assumes you have set up your target-specific C++ development envirnoment correctly. Python development skills aren't much help here.

Phil


More information about the PyQt mailing list