我对交叉编译和 ARM 板很陌生。目前我对 ARM 板上的交叉编译和二进制执行有基本的想法。我想构建一个 QT 应用程序以在支持触摸屏的基于 ARM 的板上运行。该板已经配置了 QT 5 和 tslib。但是要使用 qmake 交叉编译应用程序,我需要在我的 ubuntu PC 中使用 tslib 交叉编译 QT。我能够在没有 tslib 的情况下构建这样的一个,并成功地在我的板上显示了一个应用程序。但是当我尝试使用 -tslib 配置 qt 时,配置过程会导致以下消息终止:
Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
WARNING: Cross compiling without sysroot. Disabling pkg-config
ERROR: Feature 'tslib' was enabled, but the pre-condition 'libs.tslib' failed.
Check config.log for details.
这是我的 qtbase/mkspecs/linux-arm-gnueabi-g++ 内容:
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
QMAKE_INCDIR += /home/tslib/include/
QMAKE_LIBDIR += /home/tslib/lib/
# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
这里是配置。命令:
./configure -opensource -confirm-license -xplatform linux-arm-gnueabi-g++ -prefix /usr/local/qt5.8embd -nomake examples -no-opengl -no-iconv -silent -qpa linuxfb -no-gtk -tslib
事实是我通过谷歌提供了错误的方法。我希望有人建议在启用 -tslib 的情况下交叉编译 QT 5.8.0 的简洁工作步骤。
脚注:我可以以间接方式构建 QT 应用程序吗?我的目标板上有所有必需的 .so 文件。我可以将它们复制到我的 PC 中,我可以只使用我的工具链交叉编译一个 Qt 项目吗?