(开源版)Qt + 鸿蒙:搭建环境(X86架构)

一、前言:

1.Qt分为商业版和开源版,没钱所以使用开源版

2.鸿蒙版的Qt支持源码编译,也支持下载编译好的库。新手不建议源码编译,东西大,编译时间长,排错不方便。所以这里使用得编译好的库

3.鸿蒙电脑真机是arm架构的,我是Windows开发,跑模拟器,所以模拟器是x86架构

4.我本身电脑就安装有Windows版本的Qt,所以不讲怎么安装Qt Create前面的这些

5.我习惯更新,用新版本,我的Qt Create版本是19.0,可能配置位置不同,但是原理一样

 

二、准备:

1. Qt库:https://gitcode.com/openharmony-sig/qt/releases

*:这里讲的是x86架构,所以我们下载x86架构的就好(Qt5.15.12_alpha_v8_x86-64_openharmony_ndk_5.1.0.107_community_win.zip)

 

2. mingw:https://github.com/mstorsjo/llvm-mingw/releases

*:需要下载这个版本(llvm-mingw-20260421-ucrt-x86_64.zip)重要的是(ucrt-x86_64)

 

3. DevEco Studio:https://developer.huawei.com/consumer/cn/download/

*:我下载的最新版本的(DevEco Studio 6.1.0 Release)

 

三、开始配置Qt环境

1. 将上面三个东西下载下来,该解压解压,该安装安装,记住路径不要有中文,不要有空格

2. 打开 Qt Create,配置Qt版本,配置编译器,配置构建套件

2.1 配置Qt版本:打开首选项,点击构建套件,点击Qt 版本,点击添加,找到我们刚解压的qt库的文件夹,进去bin文件夹,找到qmake.exe

image

 

2.2 配置编译器:点击添加,选择Custom,设置C编译器位置(记住选DevEco Studio里面的clang.exe),设置make路径(这里设置的是mingw的 bin/mingw32-make.exe),设置ABI(x86-linux-generic-elf-64bit,其实在配置Qt版本时就有提醒你需要什么样的ABI)

image

 

2.3 配置构建套件:点击添加,设置一个名称,设置编译器,设置Qt版本,设置Sysroot(这里是DevEco Studio的路径),我们是开源版所以不需要设置MKspec,其他的都不用管

image

 

3. 我们还需要配置一个系统环境,不然在编译的时候会报错

设置鸿蒙的文件夹路径(OHOS_SDK_PATH,D:\hm\DevEcoStudio\sdk\default\openharmony)

image

 

四、创建一个Qt项目,使用鸿蒙的构建套件编译出来

就是正常创建一个Qt项目,比如像我一样,就创建一个widget窗口,拖一个QPushButton按钮,然后编译就可以了。

和Windows,Linux不一样,鸿蒙的编译出来是一个so库,然后下图中框出来的是依赖库,需要一起拷贝到鸿蒙工程中

*:鸿蒙工程可能会报错找不到(libplugins_platforms_qopenharmony.so),这个库在qt的 plugins\platforms 文件夹中,如果报错缺库就一起拷过去

image

 

五、创建鸿蒙工程,把我们的Qt跑起来

这个会复杂一点,有好几个地方需要修改

1. 双击桌面的快捷方式  DevEco Studio,把软件跑起来

2. 点击新建项目,选择 Native C++

image

 

3. 就正常填写项目名称,保存路径,设备类型(2in1就是电脑,可以只选这个,也可以都选),其他的不用管,点击完成,就初始化工程了

image

 

4. 把Qt库里面的这几个文件夹拷贝到鸿蒙工程的文件夹里面

image

 

5. 开始修改鸿蒙工程里面的文件,展开entry文件夹,找到build-profile.json5文件,修改arguments(配置我们的Qt版本文件夹路径),修改abifilters(配置架构)

image

 

6. 接着修改鸿蒙,展开entry,展开src,展开main,打开module.json5,添加srcEntry,添加launchType,然后把自带的extensionAbilities里面的代码注释

image

 

7. 接着修改鸿蒙,展开entry,展开src,展开main,展开ets,展开entryability,点击EntryAbility.ets,修改加载的so文件,我们Qt工程里面编译出来的so叫什么名字,这里就写什么名字

image

 

8. 把Qt编译出来的库和依赖库拷贝到鸿蒙工程的文件夹里面来

*:libs文件夹里面默认只有arm64-v8a这一个文件夹,因为我们需要跑模拟器,模拟器是x86架构的,所以我们自己创建一个x86_64文件夹,然后把相关的so库放进来

image

 

六、我的第一个hello world

构建,选择模拟器,运行,然后就是我的Qt窗口出来了

image

 

posted @ 2026-04-23 23:10  十一的杂文录  阅读(4)  评论(0)    收藏  举报