如何在麒麟系统arrch64架构(V10SP1)上安装QT并编译Windows系统的QT项目

序言

        本文是对个人实践经验和网上麒麟V10SP1系统上编译安装QT资料的总结,此方式适用于在有麒麟系统的电脑上或者通过虚拟机编译QT项目,如果希望在开发机上直接生成对应部署机环境的QT项目,请参考交叉编译:

QT5交叉编译保姆级教程(arm64、mips64):http://t.csdnimg.cn/G4rHC

QT5交叉编译编译链选择:http://t.csdnimg.cn/gBcZY

准备

        一台麒麟系统电脑或使用qemu虚拟机来模拟arrch64架构的麒麟系统,由于qemu虚拟机运行效率非常慢故不太推荐。接下来博主介绍一下如何通过qemu虚拟机的方式安装QT。

宿主机环境:

虚拟机环境:

如何利用qemu虚拟机安装麒麟系统

请参考 《qemu虚拟机 安装银河麒麟V10 arm架构系统 桌面版 http://t.csdnimg.cn/wWaLG》,写的很详细。

博主用的系统镜像下载地址:

银河麒麟V10sp1桌面操作系统(飞腾版):https://kdocs.cn/l/cdhhgNC2toU8

如果有其他版本需要可以到官网或者银河麒麟桌面系统镜像下载汇总 - 墨天轮下载。

安装QT

        首先下载QT源码,这里博主用的是qt-5.14.2版本

源码下载地址:Index of /archive/qt/5.14/5.14.2/single

然后将源码解压到你需要到地址

使用

tar -xvf qt-everywhere-src-5.14.2.tar.xz

解压压缩包
接下来安装相关依赖并对源码进行编译,编译的部分网上文章比较多,这里便不细说了

参考文章:http://t.csdnimg.cn/UtPDmhttp://t.csdnimg.cn/5zGH6

多核编译前请先关闭麒麟系统的kysec安全控制,否则编译途中需求手动允许,未允许将会报错。

关闭方法:

在终端输入

sudo vim /etc/default/grub

打开文件后将最后一行改为:

之后更新grub:

sudo update-grub

等待更新完成后重启系统

输入getstatus查询

使用虚拟机进行编译会非常慢,博主用了整整一天时间,故不推荐通过此虚拟机来安装。

编译中如果遇到提示错误2:

请往上翻找到报错的文件,然后在该模块文件内进行

qmake -j8

命令进行编译,完成后重新回到qt源码主目录再进行qmake -j8重新编译

还有一种错误提示XXX not found,这说明是编译用到的依赖库缺失。请用

apt-get XXXXX

下载好后再次进行编译。

等到编译完成且不报错后,在进行make install命令安装

安装完成后,如果你的qt安装路径不是在默认usr/lib目录下,那么直接执行qmake会显示qmake:Could not find command-not-found database

解决方法:

        请将文件/usr/lib/aarch64-linux-gnu/qtchooser/default.conf修改,将第一行改为你当前qt bin文件的安装位置(如果想要多个qt版本进行编译请进入安装好的qt目录下设置临时变量):

如果提示文件为只读,请通过下面命令加入写的权限:

sudo chmod a+w default.conf

修改成功后这时就可以执行qmake -v命令

此时说明qt安装已完成 

测试

安装完成后新建一个文件夹,并创建一个hello.cpp文件

#include<QApplication>
#include<QLabel>
int main(int argc,char *argv[])
{
	QApplication a(argc,argv);
	QLabel label("hello world!");
	label.resize(200,200);
	label.show();
	return a.exec();
}

在文件夹中进入目录后依次执行编码命令

qmake -project QT+=widgets//代码所需要的库
qmake
make

 

编码完成后显示

双击hello可执行文件选择直接运行

可以看到程序正常运行

Windows项目移植到麒麟系统进行编译

        首先请保持两个系统上所用qt版本一致,如果无法保持一致最好是两个系统所用的qt版本尽量接近且无模块改动(博主试过5.14.2与5.12。8混编可以正常运行),否则会出现错误。

        将Windows下构建的qt项目的xxx.h,xxx.cpp,xxx.ui,以及xxx.rc文件和resource资源文件夹一起打包,通过FTP或者邮箱等方式发送到虚拟机当中。

        之后进入到文件目录下同样使用

qmake -project QT+=widgets//代码所需要的库
qmake
make

进行编译 

注意,在生成project文件文件时请先查看window的qt项目中的pro文件引用了那些模块,例如

这个项目中引用了widgets,network ,printsupport和axcontainer 四个模块那么在创建pro文件时应该写为:

qmake -project QT+=widgets QT+=network QT+=printsupport QT+=axcontainer

否则在编译时将会找不到相对应库

注意,在windows下include“XXXX.h”不分大小写时qt编译器会警告但是可以正常编译。在麒麟系统是需要区分大小写,否则会在编译时报错。

 编译完成后会生成可执行文件双击运行即可。

结语

        这种移植方式难点在于QT的源码的编译,在这个过程中会出现很多莫名错误 ,不过大部分都可以根据提示进入相应的文件中修改。文章为初学者编写,如有错误,还望大神指出。

### 银河麒麟操作系统 aarch64 架构安装 Nginx 服务器 #### 准备工作 确保操作环境已准备好必要的依赖库和其他软件包。对于银河麒麟 V10 版本,在开始之前应当更新系统安装基础开发工具链。 #### 下载 Nginx 源码 可以从官方网站下载适合版本的 Nginx 压缩包,或者通过其他可信渠道获取源文件。解压后进入对应的目录准备配置编译选项[^1]。 #### 编译参数设置 针对不同需求可调整具体的编译参数。例如: - 设置安装路径 `--prefix=/usr/local/nginx` 或者 `/data/install/nginx` - 启用 HTTP SSL 模块支持 `--with-http_ssl_module` - 使用指定版本 OpenSSL 库 `--with-openssl=/opt/openssl-OpenSSL_1_1_1g` 或者更具体位置如 `../openssl-1.1.1l` 这些命令可以根据实际情况灵活修改以适应特定的应用场景和硬件条件[^2][^3]。 #### 执行编译安装过程 完成上述准备工作后,可以运行如下指令来启动实际的构建流程: ```bash ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --with-openssl=/opt/openssl-OpenSSL_1_1_1g && make && make install ``` 此段脚本会先验证当前环境是否满足所有必要条件,接着按照给定参数生成Makefile文件;最后依次执行编译链接直至最终部署到目标位置。 #### 测试服务状态 成功安装完成后建议立即测试新搭建的服务实例能否正常运作。可以通过访问默认主页或是利用内置的状态页面功能来进行初步检验。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值