Ubuntu从零开始搭建qt开发环境
系统设置
因为本人之前安装的系统没有做好分区,所以导致系统经常用着用着就磁盘爆满,特此写下这篇笔记,记录我系统重装系统、搭建环境的全过程。
我的电脑系统三256GB固态+1TB机械硬盘。
- 我将256GB平均分成2个区域N1和N2,N1用来安装Win11,N2用来安装Ubuntu22。
- 我再将1TB机械硬盘分成3个区域:500GB的NTFS格式N3、300GB的ext4格式为N4、剩下200GB也是ext4格式为N5。
Win11就是正常安装在N1上,并将剩下的机械硬盘分出N3给Win11系统使用。
Ubuntu22安装的时候挂载设置如下:
- 将根目录
/
挂载到N2上,这样系统的启动速度就会变快。 - 将
/home
挂载到N4上,因为我喜欢将文档、资料、视频、图片等都放在这个目录下。 - 将
/opt/
挂载到N5上,这样安装的软件就可以很多。
软件安装
Typora:笔记软件,安装0.11.18版本,此版本为最后一个Typora免费版,参考:https://zahui.fan/posts/64b52e0d/。
SQLiteStudio:数据软件,用来打开和编辑sqlite数据库文件的工具。
微信:到目前为止微信只发布了优麒麟版本,所以安装这个版本准没错,参考:https://www.ubuntukylin.com/applications/119-cn.html。
-
下载Wine环境包。
-
下载微信(wine)包。
-
终端输入:
sudo apt-get install -f -y ./ukylin-wine_70.6.3.25_amd64.deb sudo apt-get install -f -y ./ukylin-wechat_3.0.0_amd64.deb
注意:优麒麟也提供了一个之间安装的微信,是2.1.1版本的。建议用
ukylin-wechat
这个安装是3.2.1 版本。
网络代理设置:
- 下载
Clash for Windows-0.20.25-x64-linux
整合包,运行cfw
程序,并导入节点信息。 - 网络代理设置手动,HTTP Proxy
127.0.0.1:7890
,HTTPS Proxy127.0.0.1:7890
谷歌浏览器:官网下载
比较工具:
-
meld
sudo apt-get install meld
SMB服务器:用于不同类型操作系统之间进行文件共享
-
安装程序
sudo apt-get install samba-client
-
创建挂载目录,并挂载
mkdir -p /home/sjl/smb sudo mount -t cifs -o username=smb,password=smb@666 //192.168.3.168/share /home/sjl/smb
-
设置成开机挂载,在
/etc/fstab
中添加挂载命令。//192.168.3.168/share /home/sjl/smb cifs defaults,username=smb,password=smb@666
中文输入法的安装
-
安装Fcitx5主程序
sudo apt install fcitx5 # 简体中文拼音 sudo apt install fcitx5-chinese-addons # 为fcitx5输入法提供GTK4 3 2 IM模块。 sudo apt install fcitx5-frontend-gtk4 sudo apt install fcitx5-frontend-gtk3 sudo apt install fcitx5-frontend-gtk2 # 为fcitx5输入法提供Qt5 IM模块。 sudo apt install fcitx5-frontend-qt5 sudo apt install kde-config-fcitx5 sudo apt install fcitx5-pinyin # 谷歌输入法(安装后需要设置一下) sudo apt-get install fcitx-googlepinyin
-
安装词库
下载最新版的
.dict
文件,将其复制到~/.local/share/fcitx5/pinyin/dictionaries/
文件夹下即可https://github.com/felixonmars/fcitx5-pinyin-zhwiki/releases
-
配置
使用 im-config 工具可以配置首选输入法,根据弹出窗口的提示,将首选输入法设置为 Fcitx 5 即可。
im-config
环境变量配置,写入
/etc/profile
对全部用户生效,写入~/.bash_profile
对当前用户生效export XMODIFIERS=@im=fcitx export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx
设置开机自启动,在 Tweaks(
sudo apt install gnome-tweaks
)中将 Fcitx 5 添加到「开机启动程序」列表中即可。中文版中此应用叫做优化。 -
Fcitx配置
Fcitx 5 提供了一个基于 Qt 的强大易用的 GUI 配置工具,可以对输入法功能进行配置。有多种启动该配置工具的方法:
- 在应用程序列表中打开「Fcitx 配置」
- 在 Fcitx 托盘上右键打开「设置」
- 命令行命令
fcitx5-configtool
根据个人偏好进行设置即可。需要注意的是「输入法」标签页下,应将「键盘 - 英语」放在首位,拼音(或其他中文输入法)放在后面的位置。
-
QtCreator无法输入中文问题解决
-
前置安装
# 安装git sudo apt install git # 安装fcitx开发库 sudo apt install fcitx-libs-dev # ECM问题 sudo apt install extra-cmake-modules # XKBCommon_LIBRARIES XKBCommon sudo apt install libxkbcommon-dev # Parse error at “IID” sudo apt install qtbase5-private-dev
-
配置环境变量
export PATH="/opt/Qt/Tools/CMake/bin":$PATH export PATH="/opt/Qt/6.5.3/gcc_64/bin/":$PATH
-
获取fitx-qt5源码
git clone https://github.com/fcitx/fcitx-qt5
-
更改CMakeLists.txt文件
option(ENABLE_QT5 "Enable Qt5" Off) option(ENABLE_QT6 "Enable Qt6 im module" On)
-
编译,这里注意一定要用gcc11编译!
mkdir build && cd build cmake .. -DCMAKE_PREFIX_PATH=/opt/Qt/6.5.3/gcc_64 -DENABLE_QT4=Off make -j12
-
编译好的libfcitxplatforminputcontextplugin-qt6.so动态库在fcitx-qt5/build/qt6/platforminputcontext/目录下,将编译好的动态库拷贝到如下两个目录下,重启Qt即可输入中文。想要编译的可执行程序输入中文在打包时还需要附带这个动态库。此动态库同样支持fcitx5。
//请根据自己的安装路径进行调整 /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
-
设置开机程序自启
- 搜索启动应用程序并打开。
- 点击“添加”按钮,输入要启动的应用程序的名称和命令,然后点击“添加”按钮。
- 重新启动 Ubuntu。
开发环境搭建
0.版本说明
操作系统:Ubuntu22.04LST 64位
Qt版本:qt-4.8.7
Qt下载器版本:qt-unified-linux-x64-4.7.0-online.run
ARM编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
1.安装Qt Creator
打开qt官方下载地址:https://download.qt.io/,找到自己版本的qt在线安装器archive/online_installers/4.7/...
下载Qt的下载器,并运行,我根据自己项目的情况选择安装了如下的组件。
2.安装代码格式化工具
作用:代码格式化工具可以快速的将代码整理成规范的格式,让开发者专注于业务逻辑的实现,提高开发效率。
我这里使用的是clang-format
-
安装,执行如下命令
sudo apt install clang-format
-
打开代码格式美化工具选项,依次:help -> About Plugins -> Beautifier打勾。
-
将美化工具设置进QtCreator中:Tools -> Options -> Beautifier -> Clang Format选择路径
/usr/bin/clang-format
。
3.配置QT工具和库
前提条件,准备好相关库和源代码,将imx6.zip和ubuntu20.zip解压到/opt目录下
3.1 共享库环境配置
前置知识
PATH
:用来指定可执行文件的搜索路径的环境变量。当你在终端中输入一个命令时,操作系统会在PATH
中列出的路径中查找该命令对应的可执行文件。LD_LIBRARY_PATH
:用来指定动态链接库(共享库)的搜索路径的环境变量。当一个可执行文件需要依赖于某个共享库时,操作系统会在LD_LIBRARY_PATH
中列出的路径中查找该共享库。
在文件etc/profile
添加下面一句代码
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[其他目录]
3.2 配置编译套件
配置Arm编译套件,PC编译套件同理
- 打开qt creator,依次点击工具 -> 外部 -> 配置 -> 构建套件。
- Qt版本:添加qt4.8.7-arm和qt4.8.7-pc版本。
- 构建套件:添加新套件,编译器选择ARM版,Qt版本也选择ARM版。
3.3 配置Git免密克隆
-
本地配置
git config --global user.name "[输入你的用户名]" git config --global user.email "[输入你的邮箱]" # 查看是否配置成功 git config --global --list
-
生成密钥
# 生成ssh rsa密钥 cd ~/.ssh ssh-keygen -t rsa -C "[你的邮箱]"
-
将密钥设置到git服务器中
依次点击:头像 -> 个人资料 -> SSH密钥
# 查看密钥 vim ~/.ssh/id_rsa.pub # 将密钥添加到Git服务器上
4 网络挂载
4.1 安装nfs服务器
-
主机上安装NFS服务端
sudo apt-get install nfs-kernel-server
-
创建一个目录作为挂载点
mkdir -p /forlinux/autobio sudo chmod -R 777 /forlinux
-
在文件
/etc/exports
加入一行# "/forlinux"是要共享的目录,“ * ”意思是所有人都能挂载 /forlinux *(rw,sync,no_root_squash)
-
将根文件系统rootfs
rootfs.qt4.tar.bz2
解压到此目录下。 -
设置此文件系统的权限
#sjl为当前用户 sudo chown sjl:sjl /forlinux/autobio -R
4.2 串口调试工具
-
安装串口调试工具
sudo apt-get install picocom
-
打开串口
sudo picocom -b 115200 /dev/ttyUSB0
4.3 客户机挂载
在uboot的时候输入挂载指令
# nfs挂载
setenv ipaddr 192.168.3.54;setenv serverip 192.168.3.57;setenv nandargs setenv bootargs console=ttymxc0,115200 cma=64M root=/dev/nfs rw ip=192.168.3.54:192.168.3.57:192.168.3.1:255.255.255.0::eth0:off nfsroot=192.168.3.57:/forlinux/autobio,v3,tcp rootfstype=yaffs2,calibrate=${calibrate};saveenv;boot
取消挂载指令
# 取消nfs挂载
setenv nandargs setenv bootargs console=ttymxc0,115200 cma=64M root=/dev/mtdblock5 rootfstype=yaffs2,calibrate=${calibrate};saveenv;boot
FQA
第一次启动Qt Creator无法运行并弹出如下错误。
Could not load the Qt platform plugin “xcb” in “” even though it was found.
解决方法:因为缺少动态库,只需以此执行以下命令
sudo apt-get install xbc
sudo apt-get install libxbc-cursor0
QT启动时提示MaintenanceTool无法被执行
插件初始化失败: The maintenance tool at “/opt/Qt/MaintenanceTool” is not an executable. Check your installation.
解决方法:进入QtCreator的配置文件,更改配置文件
vim /opt/Qt/Tools/sdktool/share/qtcreator/QtProject/QtCreator.ini