瑞芯微Rockchip开发者社区
直播中

七上八下

8年用户 848经验值
私信 关注
[问答]

在Windows上安装Qt程序需要注意哪些事项呢

怎样将Qt程序从Windows移植到Linux上呢?
在Windows上安装Qt程序需要注意哪些事项呢?

回帖(1)

赵丽

2022-2-11 11:23:36
我需要准备在Windows上编写的Qt程序,因此需要提前将注意它复制到系统下。注意把文件里的图片也拷贝过去。
Linux:Ubuntu 16.04
Qt版本:5.9.4
一、交叉编译器必须准备

下载交叉编译器

这里的交叉编译器是你的目标开发板匹配的交叉编译工具在下载之前,要先查清你的libc版本。glib是gnu发布的运行libc库,也是c库。glib是linux系统中最即c的capi(应用程序开发接口),几乎其他任何运行
ldd --version
显示的结果是

ldd (Ubuntu GLIBC 2.23-0ubuntu11.2) 2.23
Copyright (C) 2016 自由软件基金会。
这是一个自由软件;请见源代码的授权条款。本软件不含任何没有担保;甚至不保证适销性
或者适合某些特殊目的。
由 Roland McGrath 和 Ulrich Drepper 编写。
证明本机的 glibc 是 2.23,属于比较的版本
。此处提供的是最新版本的交叉编译,但它与本机的glibc版本不匹配。glibc版本查询到本机适用为cc-linaro-6.3.1。下载地址
安装

交叉编译工具将下载的交叉编译选择/opt。

//在下载目录下打开终端
sudo mv gcc-linaro-6.3.1-2018.12-x86_64_aarch64-linux-gnu.tar.xz /opt
复制完成后在/opt目录下输入命令。
tar -xvf gcc -linaro-6.3.1-2018.12-x86_64_aarch64-linux-gnu.tar.xz /opt/gcc-aarch64-linux-gnu
将文件解压并重命名为gcc-aarch64-linux-gnu,然后将/opt/gcc-aarch64 -linux-gnu/添加到环境变量中,输入命令。
然后输入以下命令使环境变量生效。
source /etc/profile
通过下面的命令来验证是否安装成功。
aarch64-linux-nu-gcc -v
若输出结果,证明交叉编译器安装成功。

Using built-in specs.
COLLECT_GCC=aarch64-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/opt/gcc-aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/6.3.1/lto-wrapper
Target: aarch64-linux-gnu
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/aarch64-linux-gnu/snapshots/gcc.git~linaro-6.3-2017.05/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/aarch64-linux-gnu/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/aarch64-linux-gnu/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/aarch64-linux-gnu/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-arch=armv8-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/aarch64-linux-gnu/_build/sysroots/aarch64-linux-gnu --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/aarch64-linux-gnu/_build/builds/destdir/x86_64-unknown-linux-gnu/aarch64-linux-gnu/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=aarch64-linux-gnu --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/aarch64-linux-gnu/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
交叉编译Qt二库

首先在官网下载qt-everywhere-opensource-src-5.9.4.tar.xz,
将下载的压缩包复制到/opt目录下,
tar -xvf qt-everywhere-opensource src-5.9.4.tar.xz -
然后编辑linux-aarch64-gnu-g++的qmake.conf文件。aarch64-gnu-g++是RK3399 Pro使用的编译器。
sudo gedit /opt/qt-everywhere-opensource-src -5.9.4/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf
在打开的文件中添加如下内容
QT_QPA_DEFAULT_PLATFORM = linuxfbQMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -ltsQMAKE_CXXFLAGS_RELEASE += -O2 -march= v8-a -lt arm/各种添加

点击保存,然后在opt /qt-everwhere-opensource-src- 5.9.4下输入
sudo gedit auto.sh新建的auto.sh为交叉编译自动配置脚本,在其中以下内容

#!/bin/sh
./configure
-prefix /opt/qt5.9.4-arm
-confirm-license
-opensource
-release
-make libs
-xplatform linux-aarch64-gnu-g++
-pch
-qt-libjpeg
-qt-libpng
-qt-zlib
-no-opengl
-no-sse2
-no-openssl
-no-cups
-no-glib
-no-dbus
-no-separate-debug-info
其中/opt/qt5.9.4-arm 为编译后的安装目录,-xplatform linux-aarch64-gnu-g++为交叉编译相关选择。
接着文件权限并执行。

sudo chmod u+x auto.sh
./auto.sh
的结果并生成生成文件。

接着
//-j 是性能结果并在生成文件的时候生成。 make -j64 这里需要出现执行长的命令。
然后输入。
sudo make install 执行成功后,可以/opt 看到目录了我们比较指定的安装/opt/qt5.9.4-arm,表示安装成功。
三、在QtCreator上交叉编译

安装QtCreator

在官网下载qt-opensource-linux-x64-5.9.4.run,
把下载下来的文件/选择下。
//在下载目录下打开终端 sudo mv qt-opensource-linux-x64-5.9.4.run /opt 输入命令。
1. sudo chmod u+x qt-opensource-linux-x64-5.9.4.run2。5.9.4.运行提示,然后,选择

安装完成后,在点击图标-输入。
cd /opt/Qt5.9.4/ToolsQt5.9.4/ToolsQt5.9.4/ToolsQtercator/bin./qtercator
结果如下:

*可根据需要锁定到器启动。
在工具-选项添加交叉编译器。在以下位置手动添加路径,选择中前面下载的交叉编译器编译器位置,GCC和G++都要添加。

然后在Qt版本选择Qt版本,路径为交叉编译后安装的qt路径需要如下图所示。

这里可以指定多个Qt版本,在PC上调试代码,可以安装Linux的Qt环境并添加在这里。
最后在套件栏添加项目套件,如下图所示,包括名称、设备类型、编译、Q版本等信息,如下图所示。

如果有多个四、在开发板项目运行
通第一个Qt程序

开发时,在栏的灰色环境直接添加,以后编译时就可以很方便地切换环境。

到开发板,通过ssh发送。在开发板这里输入
scp发送者id@发送者ip:发送文件路径接收文件路径//例如:~/example./ 发送文件前可能要关闭PC端的防火墙。
systemctl stop ufw发送后,需要将安装目录下的include、lib、plugins添加到开发板的环境变量中。
输入
sudo gedit /etc/profile export QTEDIR
=/opt/qt5.9.4-arm/export LD_LIBRARY_PATH=$plugTEDQIR/lib:$LD_LIBARAY_PATHexport QT_QPA_PLATFORM_PLUGIN_PATH=$QTEDIR/PLUGIN_PATH=$QTEDIR/PLUGIN_PATH=$QTEDIR/PLUGIN_PATH=$linuxfbexport QT_QPA_FDIR=/usr/share /fonts/truetype/droid 然后,输入让环境变量保存生效。
source /etc/profile 程序最好重新启动一下。
执行 Qt

在 QtCreator 交叉编译你的 Qt 程序,注意,编译后的程序无法在 PC 上运行的!成功后默认在生成一个Debug文件,如“build-XXX-Debug”,然后里面有一个统计会输入的目录文件,将它发送到开发板上。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分