[Qbs] Selecting target architecture for Android
christian.kandeler at qt.io
Mon May 23 10:12:45 CEST 2022
On 5/22/22 21:57, Alberto Mardegan wrote:
> So far I've built my Android application using Qt 5.12, for the arm
> architecture only, and everything has worked fine.
> Today I tried migrating to 5.15, which supports multiarch, and I'm
> getting an issue: after building all the files for all the four
> supported architectures ("Qt with multiple abi detected:
> 'armeabi-v7a,arm64-v8a,x86,x86_64'"), I get an error during the
> install phase:
> ERROR: Cannot install files
> to the same location
> If you are attempting to install a directory hierarchy, consider using
> the qbs.installSourceBase property.
Presumably you have set qbs.install to true somewhere in the library
product, with no per-arch differentiation, leading to a conflict. Since
in the Android case the libraries are not the final build artifact, they
should not get installed.
> where MapperoCore is a DynamicLibrary. But actually I didn't spend
> time investigating this (and neither should you), because I don't
> really care about other architectures: I would be happier if my
> Android package contained just the armv7 binaries :-)
> But how do I do that? I tried specifying
> "qbs.architectures:armeabi-v7a" to QBS's command line, but then it
> looks like it cannot find the Qt libraries:
NDK ABI name and qbs architecture name are not always the same. I
suppose qbs.architecture would be armv7a here.
More information about the Qbs