ubuntu虚拟机安装Qt5 for ARM交叉开发环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文讲述了在虚拟机中安装 Qt 交叉开发环境详细过程。以便在虚拟机中进行 Qt 应用程序的开发,处理触摸屏的部分会在下一篇文章中叙述。


1、安装qt5到ubuntu虚拟机

我们的虚拟机为ubuntu18.04。

sudo apt-get update
sudo apt-get install qt5-default

sudo apt-get install qt5-default 指令会安装Qt5的默认版本,包括Qt编译所需的基本开发库和工具。这些文件将被安装在标准的系统路径下,例如:

库文件将被安装在 /usr/lib/x86_64-linux-gnu/qt5 (64位系统)或 /usr/lib/i386-linux-gnu/qt5 (32位系统)。
头文件将被安装在 /usr/include/x86_64-linux-gnu/qt5 或 /usr/include/i386-linux-gnu/qt5。
其他开发文件将被安装在 /usr/share/qt5。
安装路径可能因Linux发行版而有所不同。

sudo apt-get install qtcreator

sudo apt-get install qtcreator 安装的是Qt Creator集成开发环境(IDE),安装程序的文件会分别安装到不同的目录中:

可执行文件会被安装到 /usr/bin 目录下,其中包括 qtcreator 和 qtcreator.sh。
库文件会被安装到 /usr/lib/x86_64-linux-gnu/qtcreator 目录下(64位系统),其中包括 Qt Creator插件等。
头文件和其他开发文件会被安装到 /usr/share/qtcreator 目录下。
需要注意的是,以上路径可能因Linux发行版而有所不同。

2、安装交叉工具链

sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

使用sudo apt-get install gcc-arm-linux-gnueabi g+±arm-linux-gnueabi指令安装的交叉工具链在Ubuntu中的默认安装目录为/usr/bin/usr/arm-linux-gnueabi目录。具体而言,gcc-arm-linux-gnueabig++-arm-linux-gnueabi二进制文件位于/usr/bin目录下,而交叉编译器的库文件和头文件位于/usr/arm-linux-gnueabi目录下。您可以在这些目录中找到各种工具链组件,例如编译器、链接器、调试器和其他工具。
arm-linux-gnueabi-g++ 和 arm-linux-gnueabi-g+±7 都是用于编译 ARM 架构上运行的程序的 GNU C++ 编译器。它们的区别在于版本号。
arm-linux-gnueabi-g++ 是一个默认安装在系统中的编译器,它的版本可能比较旧,具体版本取决于你所使用的操作系统和软件包版本。而 arm-linux-gnueabi-g+±7 则是指定版本的编译器,版本号为 7,可能包含了一些新的特性和改进,可以更好地支持一些新的 C++ 标准和语言特性。

因此,如果你需要使用某些较新的 C++ 特性,那么你可能需要使用 arm-linux-gnueabi-g+±7 编译器来编译你的程序。否则,如果你的代码不需要使用新的 C++ 特性,那么 arm-linux-gnueabi-g++ 编译器可能就已经足够了。

测试:

arm-linux-gnueabi-g++ -v

3、为开发arm应用程序配置QT-IDE

要开发ARM应用程序,可以使用两种方法配置Qt IDE:

  • 使用Qt for Device Creation工具包:Qt for Device Creation工具包已经预编译了针对不同的嵌入式设备架构的Qt库和Qt Creator。它为用户提供了一个完整的嵌入式开发解决方案,包括操作系统、开发环境、控件库等。使用这种方法可以快速配置Qt IDE,快速开发和部署ARM应用程序。
  • 下载Qt源码编译:这种方法需要先从Qt官网下载源代码,然后进行编译。编译时需要注意选择编译针对ARM架构的Qt库。使用这种方法需要一定的编译技能,但是可以灵活地进行定制和调整,以满足特定的嵌入式设备需求。

需要注意的是,这两种方法并不是互相排斥的,它们可以互相结合,根据具体的应用场景选择不同的方式。例如,如果你使用Qt for Device Creation工具包进行开发,但需要在特定场景下进行一些高级定制,那么你可以使用Qt源码编译的方式来完成这些工作。

我们这里使用Qt源码编译的方式进行QT-IDE配置。

3.1 QT源码下载、编译、安装

  • 下载 Qt 源代码:
https://download.qt.io/archive/qt/5.15/5.15.9/single/

QT源码下载页面

  • 解压源代码:
tar -xvf qt-everywhere-opensource-src-5.15.9.tar.xz
  • 必要依赖库安装:
sudo apt-get install build-essential libfontconfig1 mesa-common-dev libglu1-mesa-dev libpulse-dev libicu-dev libsqlite3-dev libssl-dev libxcb-xinerama0-dev libxkbcommon-dev libxkbcommon-x11-dev libasound2-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
  • 配置编译参数:
    在解压源代码后,需要对编译参数进行配置,并指定目标平台、交叉编译器、库文件等信息。具体的编译参数可以参考 Qt 官方文档或手册,或通过 ./configure -h 命令进行查看。
./configure -prefix /home/linux/arm-qt -opensource -confirm-license -release -linuxfb -qt-zlib -no-gif -qt-libpng -qt-libjpeg -qt-freetype -no-rpath -no-pch -no-avx -no-openssl -no-cups -no-dbus -no-eglfs -no-pkg-config -no-glib -no-iconv -no-opengl -xplatform linux-arm-gnueabi-g++ -make libs -nomake tools -qt-sqlite -nomake tests -v -skip qtgamepad -skip qtandroidextras -skip qtmacextras -skip qtx11extras -skip qtsensors -skip qtserialbus -skip qtwebchannel -skip qtwebsockets -skip qtlocation -skip qtquickcontrols -skip qtpurchasing -skip qtconnectivity -skip qtscxml -skip qtxmlpatterns -skip qtnetworkauth -skip qtspeech -skip qtscript -skip qtremoteobjects -skip qtcharts -skip qtdatavis3d -skip qtwebview -skip QtWebEngine

如果在执行过程中出现了某些问题,解决以后需要删除config.cache 文件,然后重新执行 configure 脚本。

rm config.cache

此外,诸如:-skip qtmacextras ,使用Qt 编译选项-skip,跳过编译 qtmacextras 模块。该选项通常用于排除某些不需要或不可用的模块。
需要注意的是,如果将来又有需要使用 qtmacextras 模块,则需要重新编译 Qt 并取消使用 -skip qtmacextras 选项。同时,在使用其它 Qt 模块时,如果这些模块依赖 qtmacextras 模块,也需要取消使用 -skip qtmacextras 选项。

  • 开始编译:
    在完成参数配置后,使用 make 命令进行编译。编译时间会根据参数设置和机器配置而有所不同,可能需要半个小时或更长时间。
make
  • 安装工具包:

在编译完成后,使用 make install 命令将编译好的工具包安装到指定目录中。这个目录我们在前面的配置参数用-prefix 进行了指定,-prefix /home/linux/arm-qt,在安装前请确认这个安装目录已经存在。

make install 

3.2 配置 Qt Creator

在安装完成后,需要在 Qt Creator 中配置编译器、库文件和工具包等信息,以便能够正确地编译和调试 Qt 应用程序。

  • 打开 Qt Creator,选择「工具」-「选项」-「构建和运行」,界面如图:
    图2
  • 选择「Qt 版本」栏,点击添加,选择刚刚安装的适用于 ARM 架构的 Qt 安装目录,点击「应用」和「确定」按钮完成配置.
    图3
  • 切换到「构建套件」标签页(Kits)。在「构建套件」下,可以对已经存在构建套件进行修改,也可以点击「添加」,增加一个新的构建套件。在设置界面上,选择适用于 ARM 开发板的交叉编译工具链,为构建套件输入适当的名称,例如「ARMv7 Toolchain」,点击「应用」和「确定」按钮完成配置。
    图4

4 测试编译环境

用一个简单的hello程序,测试我们的编译环境。
图5图6图7

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Ubuntu安装Qt6交叉编译,可以按照以下步骤进行操作: 1. 首先,确保已经安装了libgl库,可以使用以下命令来安装: ``` sudo apt-get install libgl1-mesa-dev ``` 这样可以解决在执行Qt时出现“can't not find -lGL”的问题。 2. 下载并安装Qt6的开源版本。可以从Qt官方网站上下载适合您的Ubuntu版本的安装包。然后,在终端中导航到下载的安装包所在的目录,并运行以下命令来安装Qt6: ``` sudo ./qt-opensource-linux-x64-5.11.1.run ``` 这会启动Qt安装程序,并按照提示进行安装。 3. 安装完成后,您可以在Ubuntu的应用程序菜单中找到Qt。点击左下角的图标,然后搜索Qt即可找到Qt。 4. 接下来,需要设置交叉编译环境。首先,添加arm-linux-gnueabihf-gcc工具链。可以使用以下命令进行安装: ``` sudo apt-get install gcc-arm-linux-gnueabihf ``` 这将安装所需的交叉编译工具链。 5. 如果您的Ubuntu系统是arm64位的,则需要搭建一个aarch64环境。可以参考以下步骤进行操作: - 首先,确认您的Ubuntu系统是arm64位的,可以通过运行以下命令来检查: ``` uname -m ``` 如果结果是"aarch64",则您的系统架构已经是符合要求的。如果结果是"x86_64",则需要创建一个aarch64环境。 - 在虚拟机安装一个aarch64的Ubuntu系统,或者在另一台arm64位的硬件设备上安装Ubuntu系统。 - 在该系统上搭建Qt交叉编译环境,确保Qt库和交叉编译工具匹配。 通过以上步骤,您就可以在Ubuntu上成功安装Qt6交叉编译环境了。请根据您的实际情况选择是否需要搭建aarch64环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ubuntu搭建qt交叉编译环境](https://blog.csdn.net/L1643319918/article/details/125644934)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Ubuntu20.04配置aarch64的Qt6环境(亲测有效)](https://blog.csdn.net/qq_63986699/article/details/127731136)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值