我有一个 Qt 应用程序,我想为 armhf 进行交叉编译。我使用以下命令设置了 sbuild chroot:
mk-sbuild --target armhf trusty
但是,当我运行debuild -S
并尝试构建包时,遇到以下错误:
$ sbuild --build=amd64 --host=armhf -d trusty myapp_1.0.dsc
...
dh_auto_configure -a
qmake: could not find a Qt installation of ''
dh_auto_configure: qmake -makefile -nocache QMAKE_CFLAGS_RELEASE=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_CFLAGS_DEBUG=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_CXXFLAGS_RELEASE=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_CXXFLAGS_DEBUG=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_LFLAGS_RELEASE=-Wl,-Bsymbolic-functions -Wl,-z,relro QMAKE_LFLAGS_DEBUG=-Wl,-Bsymbolic-functions -Wl,-z,relro QMAKE_STRIP=: PREFIX=/usr returned exit code 1
make: *** [build-arch] Error 2
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
我究竟做错了什么?
答案1
有一个 bug“Cross qmake to the chroots”,我在 Ubuntu SDK 中使用 armhf chroots 时也遇到了这个 bug:
https://bugs.launchpad.net/ubuntu/+source/click/+bug/1393697
因此,我改用 CMake 而不是 qmake。