Building Qt for a given device requires a toolchain and a
						
sysroot
						
						. Additionally, some devices require vendor-specific adaptation code for EGL and OpenGL ES 2.0 support. This is not relevant for non-accelerated platforms, such as those that use the
						
							LinuxFB
						
						plugin, which is meant for software-based rendering only.
					
						The
						
							qtbase/mkspecs/devices
						
						directory contains configuration and graphics adaptation code for a number of devices. For example, the
						
linux-rasp-pi2-g++
						
						mkspec contains build settings such as the optimal compiler and linker flags for the
						
							Raspberry Pi 2
						
						device. The mkspec also contains information about either an implementation of the
						
							eglfs
						
						hooks (vendor-specific adaptation code), or a reference to the suitable
						
							eglfs
						
						device integration plugin. The device is selected through the
						
							configure
						
						tool's
						
-device
						
						parameter. The name that follows after this argument must, at least partially, match one of the subdirectories under
						
							devices
						
						.
					
The following is an example configuration for the Raspberry Pi 2. For most Embedded Linux boards, the configure command looks similar:
./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=$TOOLCHAIN/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot $ROOTFS -prefix /usr/local/qt5
						The most important parameters are
						
-device
						
						and
						
-sysroot
						
						. By specifying
						
-sysroot
						
						, the include files and libraries used by
						
configure
						
						's feature detection tests, as well as Qt itself, are taken from the specified location, instead of the host PC's standard locations. Consequently, installing development packages on the host machine has no relevance. For example, to get
						
libinput
						
						support, it is not sufficient or necessary to have the
						
libinput
						
						development headers and libraries installed on the host environment. Instead, the headers and the libraries for the target architecture, such as ARM, must be present in the
						
sysroot
						
						.
					
						
pkg-config
						
						is supported also when performing cross-compilation.
						
configure
						
						automatically sets
						
PKG_CONFIG_LIBDIR
						
						to make
						
pkg-config
						
						report compiler and linker settings based on the
						
sysroot
						
						instead of the host machine. This usually functions well without any further adjustments. However, environment variables such as
						
PKG_CONFIG_PATH
						
						must be unset for the host machine before running
						
configure
						
						. Otherwise, the Qt build may attempt to use inappropriate headers and libraries from the host system.
					
						Specifying
						
-sysroot
						
						results in automatically setting the
						
--sysroot
						
						argument when invoking the compiler. In some cases this is not desirable and can be disabled by passing
						
-no-gcc-sysroot
						
						to
						
configure
						
						.
					
						
-prefix
						
						,
						
-extprefix
						
						,和
						
-hostprefix
						
						control the intended destination directory of the Qt build. In the above example the ARM build of Qt is expected to be placed in
						
/usr/local/qt5
						
						on the target device. Note that running
						
make install
						
						does not deploy anything to the device. Instead, the
						
安装
						
						step targets the directory specified by
						
extprefix
						
						which defaults to
						
sysroot
						
						+
						
prefix
						
						and is therefore optional. However, in many cases "polluting" the sysroot is not desirable and thus specifying
						
-extprefix
						
						becomes important. Finally,
						
-hostprefix
						
						allows separating host tools like qmake, rcc, uic from the binaries for the target. When given, such tools will be installed under the specified directory instead of
						
extprefix
						
						.
					
更多信息,见 Qt 配置选项 .