精华内容
下载资源
问答
  • 嵌入式QT运行方法

    2020-09-29 20:07:49
    qt4 ./helloqt -qwt & qt5 ./helloqt --xplatform xcb
    qt4
    ./helloqt -qwt &
    
    qt5
    ./helloqt --xplatform xcb

     

    展开全文
  • 嵌入式linux平台交叉编译并移植QT4.8.5运行第一个嵌入式Qt程序 开发环境: ubuntu1404-i686 TQ2440开发板(samsung s3c2440) 天嵌官方交叉编译器(版本4.3.3) qt-everywhere-opensource-src-4.8.5.tar.gz tslib-...

    嵌入式linux平台交叉编译并移植QT4.8.5运行第一个嵌入式Qt程序


    开发环境:

    • ubuntu1404-i686
    • TQ2440开发板(samsung s3c2440)
    • 天嵌官方交叉编译器(版本4.3.3)
    • qt-everywhere-opensource-src-4.8.5.tar.gz
    • tslib-1.21.tar.bz2

    Qt下载地址:http://download.qt.io/archive/qt/
    tslib下载地址:https://github.com/libts/tslib/releases


    (一)安装编译所必须的库及工具

    sudo apt-get install libtool autogen autoconf automake build-essential libgl1-mesa-dev
    

    (二)交叉编译tslib-1.21

    tar xvf tslib-1.21.tar.bz2
    cd tslib-1.21/
    ./autogen.sh
    ./configure --host=arm-linux --prefix=/usr/local/tslib
    make && make install
    

    说明:–prefix=[安装目录,根据你的需求进行修改]

    我编译的时候遇到如下两个问题:

    • ./src/.libs/libts.so: undefined reference to EVIOCGPROP'
    • error: 'SYN_MT_REPORT' undeclared (first use in this function)

    这两个问题出现的原因是tslib版本比较新,但是交叉编译器比较老,也就是版本不匹配的问题,这两个宏定义可以在主机linux中的<linux/input.h>头文件中找到(/usr/include/linux/input.h),直接复制过来粘贴进tslib/src/tslib.h中即可。

    编译完成后,拷贝到开发板:

    cp /usr/local/tslib /opt/embeded/yaffs2/lib -rf
    

    配置开发板上tslib的环境:

    vi /etc/profile
    

    添加:

    export TSLIB_ROOT=/lib/tslib
    export TSLIB_TSDEVICE=/dev/event0
    export TSLIB_FBDEVICE=/dev/fb0
    export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
    export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
    export TSLIB_CALIBFILE=/etc/pointercal
    export TSLIB_CONSOLEDEVICE=none
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
    

    说明:

    • TSLIB_ROOT是开发板文件系统上tslib库目录
    • TSLIB_TSDEVICE是触摸屏设备文件(可以使用命令cat /dev/event0测试一下,正常的话触摸屏幕会有乱码打印出来,若没有打印则该文件不是触摸屏的设备文件。
    • TSLIB_FBDEVICE是LCD帧缓冲设备文件。
    • TSLIB_CALIBFILE是校准屏幕后的坐标信息

    更新环境变量:

    source /etc/profile
    

    运行屏幕校准测试:

    /lib/tslib/bin/ts_calibrate
    

    此时屏幕会出现坐标点,依次点击后会生成文件/etc/pointercal,该文件目录不要更改,因为Qt会在/etc
    目录下找pointercal这个文件。


    (三)交叉编译Qt-4.8.5

    解压Qt源码包并进入

    tar xvf qt-everywhere-opensource-src-4.8.5.tar.gz
    cd qt-everywhere-opensource-src-4.8.5/
    

    修改交叉编译器并添加tslib的库目录:

    gedit mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
    

    第一步,添加tslib的包含目录和库目录:

    QMAKE_INCDIR = /usr/local/tslib/include/
    QMAKE_LIBDIR = /usr/local/tslib/lib/
    

    第二步,修改编译器名称,改成你自己的交叉编译器,并添加-lts选项,目的是链接tslib库。

    gedit mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
    

    修改后:
    在这里插入图片描述

    配置编译:

    ./configure -prefix /usr/local/qt4.8.5-arm \
    -force-pkg-config \
    -opensource \
    -confirm-license \
    -release -shared \
    -embedded arm \
    -xplatform qws/linux-arm-gnueabi-g++ \
    -depths 16,18,24 \
    -fast \
    -optimized-qmake \
    -pch \
    -qt-sql-sqlite \
    -qt-libjpeg \
    -qt-zlib \
    -qt-libpng \
    -qt-freetype \
    -little-endian -host-little-endian \
    -no-qt3support \
    -no-libtiff -no-libmng \
    -no-opengl \
    -no-mmx -no-sse -no-sse2 \
    -no-3dnow \
    -no-openssl \
    -webkit \
    -no-qvfb \
    -qt-mouse-tslib \
    

    说明:-prefix [Qt安装目录],这里根据你的需要进行修改。

    开始编译并安装Qt:

    make -j4 && make install
    

    说明:-j4,这里的4表示是4核心,取决于你的电脑CPU是几核的,目的是为了加速编译。

    我按照此开发环境和步骤编译是没有问题的,其他环境和版本未知。

    编译完成后拷贝到开发板文件系统中:

    cp /usr/local/qt4.8.5-arm /opt/embeded/yaffs2/lib/ -rf
    

    (三)开发板Qt环境配置

    配置开发板上qt的运行环境:

    vi /etc/profile
    

    添加:

    export QWS_DISPLAY="LinuxFb:mmWidth95:0"
    export QWS_MOUSE_PROTO=tslib:/dev/event0
    export QWS_SIZE=480*272
    export QTDIR=/lib/qt4.8.5-arm
    export QT_QWS_FONTDIR=$QTDIR/lib/fonts
    export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
    
    

    说明:

    • QWS_DISPLAY是Qt的显示设备和设置分辨率,如果不设置那么在ARM上运行Qt程序显示的字体就会很小。具体设置参考这篇博客:http://blog.chinaunix.net/uid-26993600-id-4568302.html
    • QWS_MOUSE_PROTO是触摸设备文件,可以设置为:
      1. 触摸屏:export QWS_MOUSE_PROTO=tslib:/dev/eventN,N为数字
      2. USB鼠标:export QWS_MOUSE_PROTO="Intellimouse:/dev/mouseN",N为数字
    • QWS_SIZE是屏幕的大小
    • QTDIR是Qt的库目录

    更新环境变量:

    source /etc/profile
    

    运行Qt自带的示例程序:

    注意要加 -qws选项:
    在这里插入图片描述
    效果:
    在这里插入图片描述


    (四)运行自己编译的Qt程序

    Qt的安装教程就不在此写了,网上很多linux上安装Qt的教程。

    打开Qt Creator->Tools->Options…->Build & Run,配置如下几项:

    添加qmake:
    在这里插入图片描述
    添加交叉编译工具链:
    在这里插入图片描述
    添加构建套件:
    在这里插入图片描述

    新建一个HelloWorld工程,构建套件选择我们刚添加的embeded,然后布局如下并编译工程:
    在这里插入图片描述
    编译完成后在工程目录下找到HelloQt并拷贝到开发板的文件系统中,然后./HelloQt -qws运行:
    在这里插入图片描述
    开发板运行效果:
    在这里插入图片描述


    ends…

    展开全文
  • 文章目录1.嵌入式Qt简介2.iMX287A支持的Qt版本 1.嵌入式Qt简介 2.iMX287A支持的Qt版本

    1.嵌入式Qt简介

    Qt 是一个跨平台的应用程序开发框架。使用Qt开发的应用程序,只需要编写一套代码,然后把这套代码放在不同平台的Qt环境去编译,就会生成可以运行在对应平台的应用程序。例如,我在Windows写了一个串口助手,这套代码不用修改,放在Linux环境下的Qt开发环境,重新编译,就可以生成可以在Linux环境下运行的串口助手,当然,Qt支持的环境有很多。不同平台下的移植,只需要修改很小一部分或者不用修改就可以直接运行。
    在这里插入图片描述
    嵌入式Qt,即QtE,属于Qt Embedded Linux 分支平台。Qt/E 所面对的硬件平台较多,当开发人员需要在某硬件平台上移植 Qt/E 时,需要下载Qt 源代码,利用交叉编译器编译出 Qt 库。接着需要将 Qt 库复制两份,一份放置在开发主机上,供编译使用;一份放在目标板上,供运行时动态加载使用。
    在这里插入图片描述

    2.查看开发板Qt库的版本

    要想在开发板上运行Qt程序,首先板子上要有Qt的库,而且要确定这个的库的版本。那么怎么看呢?可以使用find搜索命令,搜索本地所有Qt相关的文件:

    #进入到根目录
    cd /
    
    #搜索qt相关的文件
    find -name "*Qt*"
    #或者
    find -name "*qt*"
    

    如果搜索结果有很多so类型的文件,说明这个开发板上的系统是支持Qt的,而且后面的数字就是当前Qt库的版本号。
    在这里插入图片描述
    可以看出,iMX287A开发板支持Qt,库的版本是4.7.3。

    3.第一个嵌入式Qt程序——Hello World

    又是"Hello World",无论学习什么东西,都要先来个"Hello World",当然Qt也不例外。

    3.1 主机搭建嵌入式Qt环境

    搭建一个最基本的Qt环境,需要两个东西:qmake和编译器。编译器用的是交叉编译器,我们在第一节的教程中,已经介绍了,并且已经把交叉编译器的路径添加到了环境变量。下面我们就来安装用来开发嵌入式程序的qmake。

    qmake包工具在光盘的位置:3、Linux\2、工具软件\Linux 工具软件\qt4.7.3.tar.bz2

    #进入到opt目录
    cd /opt
    
    #解压qmake套件,Qt-4.7.3.tar.bz2
    sudo tar -jxvf qt4.7.3.tar.bz2
    
    #添加到用户环境变量
    sudo vim ~/.bashrc
    
    #文件末尾添加一行,$PATH放在后面,表示路径添加在环境变量最前面
    export PATH=/opt/qt4.7.3/bin/:$PATH
    
    #使设置的环境变量生效
    source ~/.bashrc
    
    #查看当前的PATH路径
    echo $PATH
    
    #查看当前Qt版本
    qmake -v
    

    如果本机有多个qmake,那么一定要把嵌入式qmake路径添加到环境变量最前面,否则不能识别
    在这里插入图片描述
    如果输出了Qt的版本,并且所在路径是我们设置的,说明Qt环境搭建成功。

    3.2 编写Hello World源程序

    我们来编写一个简单的界面,程序只显示一个标签,标签的内容是“Hello World”。在PC上交叉编译之后,把可执行文件传输到开发板上运行。

    #新建一个文件夹存放qt工程
    mkdir hello_qt
    
    #新建cpp文件
    touch hello_qt.cpp
    
    #编辑hello_qt文件
    vim hello_qt.cpp
    

    hello_qt.cpp文件的内容:

    //Qt图形库
    #include <QtGui>
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc,argv);
    	//新建一个标签
        QLabel label(QString("hello qt"));
        label.show();
    
        app.exec();
    }
    

    程序很简单,就是新建了个标签,文本内容是"hello qt",然后让这个标签show出来。下面开始编译,生成可执行文件:

    #生成.pro文件
    qmake -project
    
    #生成Makefile文件
    qmake
    
    #编译生成可执行文件
    make
    

    在这里插入图片描述

    这样,就生成了hello_qt的可执行文件,可以使用file命令看一下文件类型:
    在这里插入图片描述
    支持ARM平台运行的Qt程序。

    3.3 开发板运行Hello World

    通过scp传输或NFS共享的方式把这个文件在开发板上运行:
    在这里插入图片描述
    在开发板上运行:
    在这里插入图片描述
    实际效果:
    在这里插入图片描述

    4.Linux桌面版本Qt环境的搭建

    Qt 是一个跨平台的图形框架,在安装了桌面版本的 Qt SDK 的情况下,用户可以先在PC 主机上进行 Qt 应用程序的开发调试,待应用程序基本成型后,再将其移植到目标板上。

    桌面版本的 Qt SDK 主要包括以下两个部分:

    • 用于桌面版本的Qt
    • Qt Creator

    4.1 安装桌面版本的Qt4

    由于iMX287A官方系统内的Qt库是Qt-4.7.3版本的库,所以我们也要在桌面Linux安装Qt4版本。官方的下载链接里,只提供了Linux版本的Qt5,而如果想安装Linux版本的Qt4,需要自己使用源码进行编译。这里提供一个简单的方法,那就是Ubuntu自带的命令行apt-get安装功能,使用命令安装Qt4版本。在使用前,请确保已经更换为中国的服务器,否则下载速度会很慢。
    在这里插入图片描述

    #更新软件列表
    sudo apt-get update
    
    #安装Qt4相关的所有软件
    sudo apt-get install qt4*
    
    #安装QtCreator
    sudo apt-get install qtcreator
    

    耐心等待一会就安装好了,如果安装过程中提示缺少某个库,那就先apt-get安装某个库就可以了。

    4.2 配置Qt Creator的构建套件

    打开工具->选项->构建和运行菜单,添加嵌入式Qt的构建套件,默认桌面环境下的Qt4构建套件已经安装好了。我们只需要设置一下嵌入式环境下的Qt4构建套件

    qmake路径:/opt/qt4.7.3/bin/qmake
    
    #交叉编译gcc路径
    /opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gccc
    
    #交叉编译g++路径
    /opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-g++
    
    #交叉编译gdb路径
    /opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gdb
    

    在这里插入图片描述

    然后在构建套件(Kit)下新建一个构建套件

    #名称
    imx287
    
    #设备类型
    同样Linux设备
    
    #C/C++编译GDB
    上一步设置的对应工具名称
    

    在这里插入图片描述
    如果构建套件前面有红色或黄色的感叹号,说明构建套件没有设置成功。

    4.3 使用QtCreator设计Hello World程序

    构建套件设置完成之后,嵌入式Qt程序的开发就和桌面Qt程序的开发一样了:

    • 新建工程时,勾选imx287构建套件:
      在这里插入图片描述
    • 界面设计
      在这里插入图片描述
    • 桌面运行效果
      在这里插入图片描述
    • 切换嵌入式构建套件
      如果程序效果正常,就可以切换为嵌入式构建套件,编译出可以在嵌入式平台运行的程序了。
      在这里插入图片描述
      点击下面的锤子按钮,就可以编译出可以在嵌入式平台下运行的程序了。
      在这里插入图片描述

    4.4 开发板运行Hello World

    使用scp或者NFS共享目录的方式把文件传输到开发板:
    在这里插入图片描述
    在开发板运行使用Qt IDE生成的可执行文件:
    在这里插入图片描述

    实际运行效果:
    在这里插入图片描述

    5.注意

    • iMX287A支持鼠标和触摸操作

    如果想使用鼠标来操作,要在系统上电之前,就把鼠标插上,如果在运行过程中连接鼠标是不能使用的。

    • 窗口大小自适应屏幕分辨率和隐藏标题栏
    #include <QDesktopWidget>
    ...........
        MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    	//不显示标题栏
        this->setWindowFlags(Qt::FramelessWindowHint);     
    //    this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);  
    	
        //获取屏幕分辨率
        const QRect availableSize = QApplication::desktop()->availableGeometry(this);
        qint16 width  = availableSize.width();
        qint16 height = availableSize.height();
        qDebug() << "width: " << width << "height:" << height;
        
    	//重新设置窗口充满整个屏幕
    	this->resize(width, height);
    	//设置窗口大小为屏幕的1/3
    //    this->resize(width/3, height/3);
    
    	//窗口位置移动到左上角
        this->move(,);
    }
    

    我的公众号:mcu149

    展开全文
  • 最近在arm板跑qt程序出现的几个问题以及解决方法,在此记录一下。 平台:am335x 内核:4.19 文件系统:buildroot2019 环境:使用TI提供的SDK 运行QT程序出现Fontconfig error 解决:拷贝sdk中的/usr/share/...

    最近在arm板跑qt程序出现的几个问题以及解决方法,在此记录一下。
    平台:am335x
    内核:4.19
    文件系统:buildroot2019
    环境:使用TI提供的SDK
    运行QT程序出现Fontconfig error
    在这里插入图片描述

    解决:拷贝sdk中的/usr/share/fontconfig/的东西到板子对应位置即可

    QT程序无法显示文字
    解决:将SDK中/usr/share/fonts,拷贝到板子,并添加路径进去环境变量LD_LIBRARY_PATH,即可解决

    QT程序无法显示中文
    解决:下载中文字体库“wenquanyi.ttc”,并拷贝到板子的/usr/share/fonts/ttf中,并添加路径进去环境变量LD_LIBRARY_PATH,在QT程序中font.setfamily(“wenquanyi”);

    展开全文
  • 嵌入式Qt开发环境搭建 系统基础环境 1. sudo apt update 2. sudo apt upgrade 3. sudo apt autoremove 4. sudo apt install vim -y 5. sudo apt install net-tools 6. sudo apt install git gitk 7. sudo apt ...
  • 上一篇(嵌入式开发工具——交叉编译libmysql)已经完成了mysql的C API交叉编译的工作,今天将用它来编译生成Qt连接mysql的动态库。 提前准备的工作: 1、向arm开发板中移植Qt,并且能正常运行 2、交叉编译好libmysql...
  • 构建qt4.8.6嵌入式qt环境

    千次阅读 2015-03-22 12:46:43
    构建嵌入式linux arm 下的qt环境
  • 第一个嵌入式QT应用程序 在成功安装 Qt Creator 开发环境后,我们通过一个简单的嵌入式Qt应用程序,来说明一下如何构建和编译一个Qt界面应用程序。 关于如何安装并构建 Qt Creator 开发环境,请参考以下帖子: ...
  • 嵌入式QT软键盘

    万次阅读 多人点赞 2016-07-04 08:44:12
    最近搞了一个组织细胞...方向是多方面的,肯定会选择自己熟悉的一个,自然而然,我选择了QT来做界面,但是QT并没有像安卓,IOS,C#等支持得那么完美,毕竟做的人不是那么多,所以相对不是那么完美。我们没有鼠标键盘
  • 基于嵌入式Qt-4.7.0版本加密数据库sqlite3的插件方法参考博客:https://www.devbean.net/2013/01/qt-sqlite-plugin-with-encryption-v02/下载源码:https://github.com/devbean/QtCipherSqlitePlugin一:编译(1)使用...
  • 编译QT 和 嵌入式QT

    千次阅读 2009-07-17 10:28:00
    1. 下载源码包 qt-x11-opensource-src-4.5.0.tar.bz2 qt-embedded-linux-opensource-src-4.5.0.tar.bz2 下载地址:ftp://ftp.qtsoftware.com/qt/source/  2.编译及安装qt-x11-opensource-src-4.5.0 qt-x1
  • 嵌入式linux串口应用编程,可直接运行在jz2400开发板上,该资源对应博客:https://blog.csdn.net/Ningjianwen/article/details/88211505
  • 在成功安装Qt Creator开发环境后,我们通过一个简单的嵌入式Qt应用程序,来说明一下如何构建和编译一个Qt界面应用程序。关于如何安装并构建Qt Creator开发环境,请参考以下内容:嵌入式Linux开发环境搭建-(5)安装和...
  • 嵌入式QT基础视频教程免费分享! 首先给大家介绍一下QT的简介,Qt 是一个用于桌面系统和嵌入式开发的跨平台应用程序框架。它包括一个直观的API和一个丰富的类库,以及用于GUI开发和国际化的集成工具,另外它支持...
  • 嵌入式Qt程序启动时,屏幕中间会出现鼠标的小绿框,而去掉屏幕中间的小绿框的方法是修改Qt源码,步骤如下: 1、修改源码 找到源码中的qwscursor_qws.cpp文件,直接搜索即可,代码修改如下: void ...
  • Win10 Bash搭建嵌入式Qt开发平台

    千次阅读 2016-08-19 16:52:24
    在Windows下利用mingw进行一些简单程序...Win10推出ubuntu bash后,算是为在widows系统下开发运行linux程序带来了可能,我这里就试着在win10 bash下搭建了一个嵌入式qt的开发平台。win10 bash与在虚拟机上安装个ubuntu
  • 嵌入式Qt开发环境搭建及移植到开发板----Qt学习笔记
  • 嵌入式Qt4.7.1安装详解

    千次阅读 2015-08-07 10:21:05
    嵌入式Qt 4.7.1安装移植过程详解 环境: Ubuntu 12.04 VMware 9.0 qt软件包:qt-everywhere-opensource-src-4.7.1.tar.gz (飞凌自带)  http://www.kuaipan.cn/file/id_111560663117095120.htm 访问密码...
  • 搭建嵌入式QT开发环境

    千次阅读 2010-01-07 14:13:00
    搭建嵌入式QT开发环境 日月 发表于 - 2009-11-8 13:59:00 2 推荐网上看了好多关于Qt开发平台搭建的帖子,但发现上面的帖子都比较旧,是针对Qt旧版本而写的。本人喜欢用较新版的东西,相信新版的东西肯定比旧版的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,322
精华内容 5,728
关键字:

嵌入式qt的运行方法