首页 > 其他分享 >QT交叉编译环境

QT交叉编译环境

时间:2023-08-16 11:44:30浏览次数:33  
标签:5.2 Qt 交叉 编译 linux qt arm QT

 

 

原文:https://www.jianshu.com/p/d4ad98863521

1 PC端安装Qt

 sudo apt-get install qtcreator

将安装全套的Qt开发环境,可以在PC端进行qt开发。

2 安装交叉编译工具链

Ubuntu14.04的Qt版本为5.2.1,16.04的Qt版本为5.5.1,高版本Qt库可以向下兼容运行低版本工具链编译的程序,因此这里选用5.2.1版本作为编译工具链。

  1. 首先从官网下载5.2.1版本的Qt源代码:<u>http://download.qt.io/archive/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.xz</u>
  2. 解压后进入到以下目录:qt-everywhere-opensource-src-5.2.1/qtbase/mkspecs,将其中的linux-arm-gnueabi-g++文件夹拷贝一个副本命名为linux-arm-gnueabihf-g++,如图:

     


        image.png
  3. 编辑linux-arm-gnueabihf-g++文件夹中的qmake.conf文件,将所有“arm-linux-gnueabi-”字样改为“arm-linux-gnueabihf-”,如下图:


     回退到根目录qt-everywhere-opensource-src-5.2.1,输入命令:
  1. sudo  ./configure -prefix /usr/local/Qt-5.2.1-armhf -release -xplatform linux-arm-gnueabihf-g++ -opensource -confirm-license -no-opengl -no-openssl -no-compile-examples -skip declarative -skip quick1
    

    “-prefix /usr/local/Qt-5.2.1-armhf”为安装路径,可以自定义

  2. 编译

     make
     sudo make install
    

3 交叉编译Qt工程

进入Qt工程目录中,目录下会有个<工程名>.pro文件,如果目录中存在<工程名>.pro.user文件,是之前qtcreator生成的配置文件,请先删除。然后运行:

  /usr/local/Qt-5.2.1-armhf/bin/qmake
  make

即可完成编译,编译好的程序可以放到树莓派上直接运行。

4 在Qtcreator中交叉编译

  1. 使用qtcreator打开工程后,选择Projects标签,然后点击右上角Manage Kits...


        image.png
  2. 配置如下图


        image.png

    其中Compiler一栏:ARM_GCC 配置如下:


        image.png
    配置完成即可在图形环境下开发和编译。

另外,工程的配置可以通过修改 工程名.pro文件,例如添加链接库,只需要在文件中添加如下选项:

    LIBS     += -lxxxxx (xxxxx为库名)

添加c99支持:QMAKE_CFLAGS += -std=c99

如果对您有所帮助请给在下点个赞



作者:Carrot_123
链接:https://www.jianshu.com/p/d4ad98863521
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:5.2,Qt,交叉,编译,linux,qt,arm,QT
From: https://www.cnblogs.com/bruce1992/p/17633626.html

相关文章

  • 简单理解QT中的信号和槽
    信号和槽信号和槽之间的连接,实现对象间的通信。信号是一个发出的动作或事件。槽是对应的响应动作。一个信号可以关联多个槽函数,信号也可以连接信号使用信号槽,类必须继承QObject。在类的定义开头需要添加宏定义Q_OBJECT实现方式通过函数指针连接connect(sen......
  • 【QT 学习之路】事件
    事件(event)是由系统或者Qt本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事件等;另一些事件则是由系统自动发出,如计时器事件。事件也就是我们通常说的“事件驱动(eventdrive)”......
  • WSL(ubuntu18.04)下编译glibc-2.27
    一、简介本文主要介绍在Windows平台上的WSL中编译glibc-2.27,步骤不难,主要是版本需要注意,不能随意匹配版本。二、准备工具需要先在微软商店安装ubuntu18.04,并安装cmake,gcc,详细步骤可参考之前的博客——https://www.cnblogs.com/Clark-Zhang/p/16309189.html。三、详细......
  • 解决VS2022工程中多个含main()函数源码文件同时编译问题
    做编程练习时,我常常将源码文件放在一个工程中管理,写出的每个源码文件中都包含一个main()函数。于是出现这样的问题:于是生成失败。这是因为,在VS2022中,一个工程里只能有一个入口函数main()。这样的要求对于一个完整的工程来说其实也比较合理,但是对我来说很不方便。于是,通过以......
  • QT使用QML实现地图绘制虚线
    QML提供了MapPolyline用于在地图上绘制线段,该线段是实线,因此我使用Canvas自定义绘制的方式在地图上绘制线段,如图:鼠标在地图上点击后,在点击位置添加图标,当有多个图标被添加到地图上后,计算各个图标间的距离,并创建一个新的虚线线段组件,连接两个图标点,显示距离数值。如果对自定义图标......
  • 记录一次hudi 编译过程遇到过的问题
    准备工作pom中初始依赖组件版本配置如下<java.version>1.8</java.version><hadoop.version>3.1.1.3.1.0.0-78</hadoop.version><hive.version>3.1.0.3.1.0.0-78</hive.version><kafka.version>2.0.0</kafka.version>起始命令mvncleanpack......
  • QT:打印当前文件名,行号和函数名称
    定义:#include<QDebug>#definemyDebug()qDebug()<<tr("文件名:")<<__FILE__<<tr("行号:")<<__LINE__<<tr("函数名:")<<__FUNCTION__;在函数中执行myDebug()即可:voidMainWindow::doAction......
  • QT快捷键
    常用高频快捷键Ctrl+/ 多行注释/取消多行注释Ctrl+B 编译工程Ctrl+R 运行工程Ctrl+Alt+up(向上箭头) 当前行向上复制Ctrl+Alt+down(向下箭头) 当前行向下复制Ctrl+Shift+up(向上箭头) 整行向上移动Ctrl+Shift+down(向下箭头) 整行向下移动Ctrl+I 代码格式化对......
  • 基于花生壳和EMQX搭建本地mqtt服务
    本篇关于搭建本地mqtt调试服务器步骤1:下载相关工具,花生壳以及EMQX开源mqtt服务EMqx下载地址:https://www.emqx.com/zh/try?product=broker花生壳下载地址:https://hsk.oray.com/步骤2:花生壳实现内网穿透在这里不做讲解,主要讲述EMQX相关步骤;emqx开源版本下载,解压后,成功后的界面:浏览......
  • ThingsKit物联网平台设备MQTT接入
    入门介绍MQTT基础知识MQTT全称MessageQueuingTelemetryTransport,它是一种基于消息队列的轻量级应用层通信协议,实现了消息发布和订阅。设备可以作为客户端的形式通过它来发布和接收消息,实现数据上报和实时控制。设计用于具有低带宽的受限设备。因此,它是物联网设备接入的完美解......