使用TSLIB交叉编译ARM 7的Qt5.8.0的确切步骤

使用TSLIB交叉编译ARM 7的Qt5.8.0的确切步骤,arm,touch,qt5,cross-compiling,qt5.8,Arm,Touch,Qt5,Cross Compiling,Qt5.8,我对交叉编译和ARM板非常陌生。目前我对ARM板上的交叉编译和二进制执行有了基本的了解。我想构建一个QT应用程序,在基于ARM的板上运行,该板支持触摸屏。该板已配置QT 5和tslib。但要使用qmake交叉编译应用程序,我需要在我的ubuntu PC中使用tslib交叉编译QT。我能够在没有tslib的情况下构建这样一个应用程序,并成功地在我的板上显示了一个应用程序。但当我尝试使用-tslib配置qt时,配置过程会终止,并显示以下消息: Note: No wayland-egl support

我对交叉编译和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交叉编译Qt5.8.0的简洁工作步骤


注意:我可以间接地构建QT应用程序吗?我有所有需要的。所以我的目标板上的文件。我可以将它们复制到我的PC中,并且只能使用我的工具链交叉编译Qt项目吗?

你的目标设备是什么

在这样进行交叉开发时,通常要做的是:

  • 使用cross工具链提供的sysroot(以Linaro为例)
  • 将目标文件系统用作sysroot
  • 在第一种情况下,您必须交叉编译所有需要的依赖项,并将它们添加到交叉工具链sysroot中


    在第二种情况下,直接在目标上安装所需依赖项的开发包。然后,根据您设置开发环境的方式,您可以在开发机器上复制设备文件系统的这个“新版本”,或者通过sshfs等方式使其可用

    您的目标设备是什么

    在这样进行交叉开发时,通常要做的是:

  • 使用cross工具链提供的sysroot(以Linaro为例)
  • 将目标文件系统用作sysroot
  • 在第一种情况下,您必须交叉编译所有需要的依赖项,并将它们添加到交叉工具链sysroot中


    在第二种情况下,直接在目标上安装所需依赖项的开发包。然后,根据您设置开发环境的方式,您可以在开发机器上复制设备文件系统的这个“新版本”,或者通过sshfs等方式使其可用

    谢谢,我使用了一个交叉工具链(arm none linux gnueabi-*)。依赖项已安装在开发板中。我的目标是构建一个Qt5GUI应用程序,在该板上运行。正如我提到的,我能够在我的目标中执行GUI应用程序。我在为触摸应用程序构建tslib库方面寻求帮助。您在该板上运行的是什么Linux发行版?在运行uname命令时,它显示3.18.24-tcc armv7l GNU/Linux uname-a返回什么?还有,你是完全自己建造的吗?使用Yocto?其他方法?Linux tcc8971-lcn-2.0 3.18.24-tcc#6 SMP抢占星期二11月15日11:12:22 KST 2016 armv7l GNU/LinuxThank.,我使用一个交叉工具链(arm none Linux gnueabi-*)。依赖项已安装在开发板中。我的目标是构建一个Qt5GUI应用程序,在该板上运行。正如我提到的,我能够在我的目标中执行GUI应用程序。我在为触摸应用程序构建tslib库方面寻求帮助。您在该板上运行的是什么Linux发行版?在运行uname命令时,它显示3.18.24-tcc armv7l GNU/Linux uname-a返回什么?还有,你是完全自己建造的吗?使用Yocto?其他方式?Linux tcc8971-lcn-2.0 3.18.24-tcc#6 SMP抢占11月15日星期二11:12:22 KST 2016 armv7l GNU/LinuxQt需要共享对象进行链接。我建议你放弃TsLib。如果你有一个电容式触摸屏,它不是真的需要,只会使事情变得过于复杂。请参阅:有关链接到工作的问题。。。根据建议的答案,您应该使用带有目标目录结构阴影的“sysroot”。共享对象的目录位置与在主机上获取正确的目录位置一样重要。路径放在生成的二进制文件中。你的问题解决了吗?我也有同样的问题是的。尝试此配置:./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-qt libjpeg-qt libpngQt需要共享对象进行链接。我建议你放弃TsLib。如果你有一个电容式触摸屏,它不是真的需要,只会使事情变得过于复杂。请参阅:有关链接到工作的问题。。。根据建议的答案,您应该使用带有目标目录结构阴影的“sysroot”。共享对象的目录位置与在主机上获取正确的目录位置一样重要。路径放在生成的二进制文件中。你的问题解决了吗?我也有同样的问题是的。尝试此配置:./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-qt libjpeg-qt libpng