编译qt64位
① qt平台编写的程序,编译生成的可执行文件,可以随意移植吗
Qt的跨平台,是指“一次编写,到处编译”,也就是说你写的代码一般不需要做特殊处理就可以在不同的平台上用Qt进行编译。
对于你所说的问题,你在win7 64位系统下编译的程序,要看你编译生成的是32位程序还是64位的程序。如果是32位的程序,那么在32位和64位windows系统下运行都是没问题的;如果是64位的程序,就只能在64位windows系统上运行了。
如果你的程序没有什么配置上的特殊要求,当然就不需要相关的配置了,只要把相应的dll文件拷贝到你的程序运行目录下就可以了,你可以到网上搜下Qt程序的发布。
② qt 64 位编程和32位编程的区别
一、64位编译器系统下可以使用64位的无符号或有符号变量了。
二、64位操作系统提供了更多的编程接口API,这些多出来的接口主要是涉及将32位数据类型扩展为64位的问题了。比如原来关于内存管理相关的函数,参数是32位的,在64位操作系统下就需要提供参数为64位的管理函数了等等。
③ (未完)ubuntu20.04 qt6.2.4 aarch64 开发编译环境配置
install QT6
更新
下载安装工具
文件权限
运行在线安装文件
如果遇到问题:
重新安装libxcb-xinerama文件
重新运行
输入账号,然后安装。选择一个版本,如6.2.4整个勾上,然后Next到下载界面。
install opencv
下载opencv
解压到指定文件夹
新建build文件夹,cmake编译
编译程序,编译完成后安装
install eigen
下载eigen release
解压
编译
完成eigen3的安装
QT include opencv eigen项目迁移到ubuntu后的编译中的报错问题
就可以正常启动qt creator了。
解决方法:
通常安装后就能解决问题,如果不行,考虑下面的软链接方法。
详细见 qt构建遇到 cannot find -l xxx 问题_qt cannot find -l-CSDN博客、 linux的Qt编译出现:-1: error: cannot find -lGL问题的解决方法-CSDN博客
虽然教程是用的野火鲁班猫,但是方法是通用的
安装cmake及其他
查看cmake版本
关于烧录Raspberry pi Image
树莓派插入SD卡并通电。(使用 Raspberry Pi Imager完成SD镜像烧录。)
可以下载( Ubuntu Lts)作为烧录镜像
Ubuntu server无界面,使用SSH远程访问,使用finalshell:
IP查看tplink中的树莓派IP,端口默认是22
QT creator添加Device
添加设备,可以在局域网中找到设备。
打开设置,然后add一个Device
需要填写IP,端口,user name, 如果没有key,就生成一个key file,然后链接,期间需要输入username对应的密码。出现下面窗口就是配置好了。
详细可以看这个链接 7. 远程连接 - [野火]嵌入式Qt应用开发实战指南-基于LubanCat-RK开发板 文档
qt creator kits交叉编译
PC的Ubuntu20.04中下载交叉编译包 arm-linux-gcc,然后在ARM板卡上部署测试。参考这个网址:
aarch64对应教程如下:
3. Qt程序编译 — [野火]嵌入式Qt应用开发实战指南—基于LubanCat-RK开发板 文档 (embedfire.com)
安装交叉编译器:
先看看自己虚拟机(PC)的信息
然后看下嵌入式设备(arm64)的信息
针对arm64嵌入式系统,使用Ubuntu20.04系统apt 安装交叉编译器, 其安装命令是
通过这个指令获取就不用下面的操作下载压缩包了,
从网盘获取交叉编译器、Qt库文件(针对aarch64平台)、sysroot文件 # 复制文件到虚拟机系统中
查看解压到的位置
查看刚才解压的文件。
安装完了之后在terminal中输入aarch64 + TAB,如下就是安装成了:
编译源码测试:
先写个c文件交叉编译试试
main.cpp内容:
编译通过后通过file指令查看文件类型是否是ELF:64bit LSB shared object,ARM aarch64...。如果是,则完成源码编译。
编译后生成了main可执行文件,拷贝到arm64平台测试,查看输出:hello world!!!。
Qt编译arm64(aarch64)环境搭建
下载qt6.2.4源代码,在虚拟机上编译aarch64版本的库文件
打开QT Creator,打开kits配置套件
如下添加一个/opt目录下的qmake
添加gcc g++ aarch64编译器
添加一个构建套件kit, 如下:
源程序选择构建套件并运行:
在嵌入式设备linux系统上运行编译好的程序:
复制Qt库到板卡,然后设置相应的环境变量,就可以运行程序。 先复制前面编译的Qt程序到板卡,然后简单运行程序:
使用winscp拷贝依赖文件到嵌入式设备上,如树莓派:
解压完成后,设置该库为环境变量
并重新运行程序
如果要永久变更,就在~/.bashrc中写入
终端运行:
板卡上可能要安装一些库