从零开始搭建国产化系统QT开发环境
1.国产化系统安装
1.1 国产化PC系统镜像下载地址
各大国产化系统官网,填写申请即可拿到下载链接,这里就不细说了
- 系统硬件和系统版本必须对应,否则会安装失败
1.2 通过国产化系统启动盘制作工具
- U盘大小不能超过32G,否则系统会安装失败
1.3 设置root账号密码
sudo passwd root
1.4 配置银河麒麟系统软件源
UOS系统只能用官方认证的源,只能通过公网连接官网源,所以无需配置。
(1)切换到配置文件目录
cd /etc/apt/
(2)备份软件源配置文件
cp sources.list sources.list.bak
(3)编辑软件源配置文件
vim sources.list
(4)配置银河麒麟软件源
#4.0.2桌面版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2-desktop main restricted universe multiverse
#4.0.2-sp1桌面版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp1-desktop main restricted universe multiverse
#4.0.2-sp2桌面版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp2-desktop main restricted universe multiverse
#4.0.2服务器版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2-server main restricted universe multiverse
#4.0.2-sp1服务器版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp1-server main restricted universe multiverse
#4.0.2-sp2服务器版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp2-server main restricted universe multiverse
#4.0.2-sp2 FT2000+服务器版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp2-server-ft2000 main restricted universe multiverse
#4.0.2-sp3版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp3 main restricted universe multiverse
#4.0.2-sp4版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp4 main restricted universe multiverse
#V10版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.0 main restricted universe multiverse
#V10.1版本:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1 main restricted universe multiverse
(5)执行软件源立即生效命令
source sources.list
(6)更新软件源
sudo apt-get update
2.远程控制配置
2.1 VNC连接配置
2.1.1 手动启动vnc
x11vnc
2.1.2 自动启动vnc
(1) 更新系统
sudo apt-get update
(2)安装x11vnc
sudo apt-get install x11vnc -y
(3)设置VNC连接密码
sudo x11vnc -storepasswd /etc/x11vnc.pass
根据提示,输入并确认VNC连接的密码,密码保存在/etc/x11vnc.pass文件中。
(4)编写服务脚本
sudo vim /lib/systemd/system/x11vnc.service
x11vnc.service文件内容如下:
[Unit]
Description=Start x11vnc at startup
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
保存退出
(5) 修改文件权限
sudo chmod 755 /lib/systemd/system/x11vnc.service
(6) 修改用户和组
sudo chown root:root /lib/systemd/system/x11vnc.service
(7)配置启动服务
sudo systemctl enable x11vnc.service
sudo system daemon-reload
(8)重启生效
sudo reboot
3.ssh服务配置
(1)设置服务的开机自启动
systemctl enable ssh
(2)设置ssh服务的运行模式
update-rc.d ssh enable 2 3 4 5
(3)配置sshd允许root登陆
vim /etc/ssh/sshd_config
找到行PermitRootLogin prohibit-password,去掉注释,并将后面的 prohibit-password改为 yes,这样ssh 才能以root用户登录。
(4)重启sshd服务
service sshd restart
4.samba服务配置
国产化系统因为没有加域无法使用SVN或者Git在线提交或者更新代码,代码只能在windows加域电脑和国产化电脑来回拷贝,工作效率非常低,可以通过配置samba服务实现文件共享,将代码仓库放到共享目录中,可以在linux开发调试,windows上更新提交代码,非常方便。
4.1 UOS系统配置samba服务
(1)查询samba安装包
sudo dpkg -l | grep samba
(2)安装samba软件
sudo apt -y install samba samba-common
(3)创建samba共享目录
sudo mkdir /home/share
sudo chmod 755 /home/share
(4)共享目录中创建几个测试文件
sudo mkdir /home/share/test
sudo touch /home/share/123.txt
(5)修改samba配置文件
备份配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
修改smb配置文件
sudo vim /etc/samba/smb.conf
在“max log size = 1000”行下新增行:
security = user
切换到文件末尾
#此处home 为windows 访问时显示的目录名,可为任一名字
[share]
#共享哪个目录路径
path=/home/share
available = yes
#是/否 在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
browseable = yes
#是/否 公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
public = yes
#是/否 不以只读方式共享当与read only发生冲突时,无视read only
writable = yes
#设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名
valid users = osho
#定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
force user = osho
#指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force group = osho
#建立文件时所给的权限
create mask = 0777
#建立目录时所给的权限
directory mask = 0777
#指定字符编码防止出现中文目录乱码的情况
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
(6)创建samba用户:
sudo useradd osho
(7)设置用户密码:
sudo smbpasswd -a osho
(8)重启samba服务:
sudo systemctl restart smbd.service
(9)确认samba服务状态:
sudo systemctl status smbd.service
4.1 windows访问samba
(1)开启samba服务支持
在windows上需要启用samba协议支持,win10上默认没有开启需要手动开启,【控制面板 -> 程序 -> 程序和功能 -> 启用或关闭 Windows 功能 -> SMB 1.0/CIFS 文件共享支持】
(2)启用不安全的来宾登录
Win + R 快捷键打开运行界面 ,输入gpedit.msc 打开本地组策略编辑器。
【本地组策略编辑器 -> 计算机配置 -> 管理模板 -> 网络 -> Lanman工作站 -> 启用不安全的来宾登录】
(3)访问samba的共享文件夹
1、开始–运行–\sambaIP
2、输入用户名/密码
(4)映射网络驱动器
在我的此电脑资源管理器中,右键菜单中点击映射一个网络位置,输入samba服务器的ip和共享的名称,即可映射一个网络位置方便快速访问共享。
5.xrdp服务配置
5.1 安装xrdp软件
(1)查询xrdp是否安装
sudo dpkg -l | grep xrdp
(2)安装xrdp软件
sudo apt-get install xrdp
5.2 远程控制软件的选择
目前Linux上有两种常用的远程控制工具VNC和xrdp,从目前使用的情况来看,在银河麒麟上使用xrdp进行远程控制显示效果和响应速度比VNC更好,在UOS上使用xrdp比较卡没有VNC流畅,所以不同的系统可以选择不同的远程控制工具,使用xrdp协议可以使用windows自带的远程连接工具比较方便,使用VNC进行远程控制需要单独安装VNC的客户端工具。
6.gcc编译器安装
6.1 银河麒麟编译器安装
银河麒麟v10 sp1以上版本默认已经安装了gcc和g++编译器,默认的版本为9.3.0,不需要手动安装
6.2 UOS系统编译器安装
统信UOS专业版系统目前只默认安装了gcc,默认版本为8.3.0,g++编译器需要自己手动安装。
(1)更新软件源
安装完UOS系统后,第一步首先需要更新软件源,否则安装g++会报错安装不上
sudo apt-get update
源更新完成以后,安装g++编译器
sudo apt-get install g++
7.cmake编译工具安装
目前通过cmake 组织的开源C++库非常多,从源码编译构建第三方库,cmake工具是必不可少的,所以建议一并装上。
sudo apt-get install cmake
8.安装常用命令
8.1 patchelf命令
patchelf
是一个在 Linux 系统下用于修改 ELF 格式文件的动态链接库(.so 文件)和可执行文件的命令行工具。它能够改变动态库的 RPATH 或 RUNPATH 值,这些值指定了链接器在运行时搜索共享库的路径。除此之外,patchelf
还可以修改动态库的SONAME(软链接名),即库在系统中的名称,以及替换动态链接库中需要的其他库。
8.2 dos2unix命令
dos2unix
是一个用于转换文本文件格式的小型工具,它能够将 Windows 格式的文本文件转换为 Unix/Linux 格式的文本文件。这个转换过程主要是针对文件中的换行进行处理。这对于处理shell脚本文件因为格式问题不能执行的问题,用起来很方便。
9.安装QT的开发环境
QT官方提供了windows和Linux-x86两个版本的安装包,但是QT5没有提供ARM架构下的安装包,只能通过源码自己编译。
9.1 安装QT5.9.7的开发环境
9.1.1 x86系统架构安装
通过qt-opensource-linux-x64-5.9.7.run直接安装即可。
9.1.2 ARM系统架构安装
- 安装QT编译依赖
#!/bin/bash
#编译essentials
sudo apt-get install -y build-essential perl python3 git
#安装libxcb依赖
sudo apt-get install -y '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
#安装Qt Webkit依赖
sudo apt-get install -y flex bison gperf libicu-dev libxslt-dev ruby
#安装Qt WebEngine依赖
sudo apt-get install -y libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libxtst-dev libxss-dev libdbus-1-dev libevent-dev libfontconfig1-dev libcap-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libegl1-mesa-dev gperf bison nodejs
#安装Multimedia模块依赖
sudo apt-get install -y libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev
#安装QDoc依赖生成工具依赖
sudo apt install -y clang libclang-dev
#安装OpenGL ES 2依赖
sudo apt-get install -y libgles2-mesa
sudo apt-get install -y libgles2-mesa-dev
- 编译QT源码
#配置命令参数
./configure -opensource -confirm-license -release -prefix /opt/qt5.9.7 -force-debug-info -skip qtlocation -skip qtvirtualkeyboard -no-opengl -shared -qt-xcb -sqlite -qt-libpng -qt-libjpeg -system-freetype -fontconfig
#编译qt5
make -j4
#安装qt5
make install
#清理临时文件
make clean
9.2 安装QT5.15.11的开发环境
9.2.1 x86系统架构安装
目前x86-linux架构下官方提供的安装包最高版本只有QT5.14.2的版本,更高版本只能通过源码自行构建。
-
安装QT编译依赖
(1)安装Qt所需的依赖: sudo apt install build-essential libgl1-mesa-dev libxkbcommon-dev libnss3-dev libdbus-1-dev gperf flex bison libxkbfile-dev (2)安装xcb相关: sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev (3)安装Qt Webkit相关依赖: sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby (4)安装Qt WebEngine依赖 sudo apt install libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libxtst-dev libxss-dev libdbus-1-dev libevent-dev libfontconfig1-dev libcap-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libegl1-mesa-dev gperf bison nodejs (5)安装Qt Multimedia依赖: sudo apt-get install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev (6)安装QDoc相关依赖: sudo apt-get install libclang-6.0-dev llvm-6.0 (7)安装clang编译器: sudo apt-get install clang (8)安装 ninja # 安装 ninja 依赖 sudo apt-get install re2c # 编译 ninja cd qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/ninja ./configure.py --bootstrap # 安装 ninja sudo cp ./ninja /usr/bin #检查安装的ninja是否成功 ninja --version
-
编译QT源码
./configure -prefix /opt/qt5.15.11 -opensource -release -confirm-license -platform linux-clang -shared -qt-doubleconversion -qt-pcre -qt-zlib -system-freetype -fontconfig -qt-harfbuzz -qt-libpng -qt-libjpeg -qt-sqlite -qt-assimp -qt-tiff -xcb -opengl -openssl-runtime OPENSSL_LIBS='-L/home/osho/openssl/lib -lssl -lcrypto' -recheck-all
9.2.2 ARM系统架构安装
编译安装和x86系统一样,但是不同系统依赖略微有差别,需要根据实际情况进行分析。
9.3 安装Qt Creator开发IDE
9.3.1 通过软件商店进行安装
银河麒麟和UOS系统大部分情况下都可以通过软件商店进行安装,对于个别版本通过软件商店进行安装会提示依赖缺少导致无法安装的只能通过源码进行构建安装。
9.3.2 通过源码构建安装
cd qt-creator-opensource-src
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/home/leo/Qt -DCMAKE_INSTALL_PREFIX=/home/software/QtCreator
cmake --build build --target=install
10.QT编译环境的选择
x86或者ARM在搭配不同系统时,要选择低版本gcc的系统作为编译出包环境,这样可以实现多系统兼容,否则会出现glibc库不匹配的问题,导致软件无法运行,对于QT5.15.11的版本最少要选择gcc 7.0以上的版本进行编译。