使用TSLIB与ARM 7交叉编译QT 5.8.0的确切步骤

时间:2017-03-14 13:23:42

标签: arm touch qt5 cross-compiling qt5.8

我很擅长跨编译和ARM板。目前我对ARM板上的交叉编译和二进制执行有基本的想法。我想构建一个QT应用程序,以便在支持触摸屏的基于ARM的主板上运行。该板已配置QT 5和tslib。但是要使用qmake交叉编译应用程序,我需要在我的ubuntu PC中使用tslib交叉编译QT。我能够在没有tslib的情况下构建这样的一个并在我的主板上成功显示了一个应用程序。但是当我尝试使用-tslib配置qt时,配置过程导致终止这些消息:

GET /cities/_search
{
  "query": {
    "multi_match" : {
      "type":     "most_fields",
      "query":    "klaipeda", 
      "fields": [ "name", "name.folded" ]
    }
  }
}

这是我的qtbase / mkspecs / linux-arm-gnueabi-g ++内容:

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. 

这是配置。命令:

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)

事实是,我正在通过谷歌提供错误的方法。我希望有人建议整齐的工作步骤来交叉编译QT 5.8.0并启用-tslib。

脚注:我可以间接构建QT应用程序吗?我在目标板上有所有必需的.so文件。我可以将它们复制到我的PC中,我是否可以仅使用我的工具链交叉编译Qt项目?

1 个答案:

答案 0 :(得分:0)

您的目标设备是什么?

在进行交叉开发时通常会做的是:

  1. 使用跨工具链提供的sysroot(例如,看看Linaro)
  2. 将目标文件系统用作sysroot
  3. 在第一种情况下,您必须交叉编译所需的所有依赖项,并将它们添加到跨工具链sysroot。

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