- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 Ubuntu22.04配置GTest测试框架
本文介绍了在WSL2 Ubuntu 22.04环境下搭建GTest单元测试框架的过程。首先安装必要的C++编译工具,然后从GitHub下载GTest源码并完成本地编译安装。通过创建包含CMakeLists.txt和测试用例的demo工程,验证了GTest环境的正确配置。测试结果显示Demo程序成功运行并通过单元测试,证明Ubuntu 22.04上的GTest环境搭建完成。该环境可用于鸿蒙系统开发过程中的特性验证工作。
2025-07-21 14:19:30
211
原创 makefile missing separator. Stop.问题
摘要 在OpenHarmony ArtTS字节码编译过程中,运行demo时出现"missing separator"错误。经排查发现是由于VSCode编辑器默认将Makefile中的制表符(tab)转换为空格导致,而Makefile要求命令行必须以tab开头。解决方法包括:1) 关闭VSCode的tab转空格功能;2) 使用记事本编辑保存Makefile。该问题凸显了Makefile对tab键格式的严格要求,开发时需特别注意保留原始tab格式。
2025-07-17 19:38:54
190
原创 OpenHarmony部件独立编译流程
本文介绍了鸿蒙external_device_manager仓库PR处理过程中遇到的编译问题及解决方案。主要内容包括:删除冗余依赖库config_policy后蓝区门禁出现的part_compile编译失败问题,以及如何在WSL环境下搭建独立编译环境进行分析。详细说明了从新建文件夹、初始化repo、拉取代码、预编译到安装hb工具和最终编译的完整步骤,其中重点介绍了独立仓代码的获取方式(通过openharmony项目搜索全称)和各阶段需执行的命令。该方案为处理类似编译问题提供了完整的参考流程。
2025-07-17 10:32:16
164
原创 Openharmony XTS编译运行
本文介绍了在Ubuntu环境下编译OpenHarmony的XTS测试套件并执行测试的流程。首先通过build.sh命令编译ArkUI测试套件,然后获取编译产物(本地或蓝区PR门禁下载)。测试前需根据Python版本准备相应测试套件,执行run.bat启动测试后,可在reports目录查看测试报告。该流程适用于验证鸿蒙特性代码的功能完整性。
2025-07-16 11:16:16
438
原创 【Ubuntu22.04】repo安装方法
本文介绍了在WSL中安装和配置repo工具的两种方法。通过中国科技大学或清华大学的镜像源,用户可以下载并配置git-repo环境。安装步骤包括克隆仓库、设置权限和配置环境变量。针对国内用户常见的"clone.bundle"访问问题,提供了替换REPO_URL的解决方案,将默认的Google源替换为清华镜像源。验证方法展示了成功安装后的版本信息输出。这些方法解决了国内开发者使用repo工具时遇到的网络访问问题,为基于repo的代码管理提供了便利。
2025-07-15 23:00:23
322
原创 【OpenHarmony】解决 XTS测试报错No module named ‘easy_install‘
本文针对OpenHarmony测试环境中的Python版本兼容性问题进行分析。问题表现为Windows本地Python 3.8+环境下运行XTS测试套件时出现"ModuleNotFoundError: No module named 'easy_install'"错误,原因是XTS套件不兼容高版本Python。文章提出两种解决方案:1) 安装Python 3.7和3.8双版本,通过调整环境变量切换;2) 仅安装Python 3.8+环境,使用新版XTS测试套件。对比显示新版套件删除了ea
2025-07-14 10:19:01
275
原创 RK3568上磁盘目录挂载理解一二
今日在做鸿蒙南向需求时,需要在rk3568上模拟测试需要建立测试环境,在/sys_prod/etc目录下新建peripheral子目录,删除测试json文件。结果遇到/sys_prod目录是只读提示,创建子目录失败。目录/sys_prod在根目录/下,按道理根目录都重新挂载,设置可读写了。其子目录应该自然可以读写。Windows系统下挂上物理硬盘,磁盘分区,比如C盘,c盘所有子目录及更深嵌套子目录都在C盘目录下。根目录/ 挂载在mmcblk0p7块上,/sys_prod挂载在mmcblk0p9块上。
2025-07-09 11:23:31
139
原创 基于未合入PR创建增量patch的git管理方法
前言准备操作步骤精准移植基础PR到本地分支修改代码鸿蒙编译、调试、测试具体编译指令、测试步骤这里带过,这不是本文论述重点创建diff文件工作仓库应用最新patch总结作为程序员,多人协同开发同一个需求是正常的。即使是自己一个人搞需求,也会遇到自己所提的PR有多轮的检视,多次修改检视意见,提交到同一PR的场景。那么就存在基础PR在一段时间内始终处于未合入状态,而自己或其它合作人员需要基于基础PR(注意基础PR是动态变化,每打上新补丁,基础PR都会更新)做增量修改的情况。
2025-07-07 10:36:20
640
原创 WSL2上Ubuntu22.04安装Docker
熟悉windows环境的朋友们,很希望能熟悉linux环境的docker容器管理操作。而WSL就提供了一个方便的桥梁,但这个中介使用还有些不方便。下面记录下wsl2环境安装docker的过程和遇到的问题。希望能帮助到你。我的环境配置是:windows10, wsl安装的是ubuntu22.04如果搭建wsl并升级到wsl2, 请自行到网络上搜索,这里不介绍了。
2024-12-25 10:10:36
927
原创 C++可执行文件参数解析
对于指定二进制或单个cpp,最终二进制启动参数的解析可以使用多种方法,看你的使用习惯。一般长短参都支持,程序的友好性较高。第三方包功能单一,若有更高需要,可以自己扩充。
2024-12-24 21:33:13
1300
转载 【Win10 环境vscode配置boost】
这里写自定义目录标题Boost exe版本windows环境安装vscode配置安装测试总结Boost exe版本windows环境安装这里不介绍boost源码安装,请自行网络搜索。本文要介绍的是window下单c++文件(cpp),调用boost库的执行配置。不涉及多文件。安装文件下载地址:+下载版本boost_1_87_0-msvc-14.1-32.exe 。最新版本请访问这里下载本人安装路径:D:\software\boost_1_87_0配置环境变量配置boost头文件和库文件环境变
2024-12-17 14:37:39
914
原创 c++懒汉式单例模式(Singleton)多种实现方式及最优比较
关于C++单例模式的写法,大家都很熟悉。早期的设计模式中有代码示例。它的缺点:线程不安全,指针资源没有释放。自从C++11推出后,单例模式有了更优秀的写法,下面来介绍下。使用 std::call_once 实现private:// 删除拷贝构造函数和赋值操作符public:});// 使用示例t1.join();t2.join();return 0;优点:线程安全、内存安全。显式控制初始化过程,适合需要延迟初始化的场景。
2024-08-30 17:25:26
1302
原创 wsl2平台鸿蒙全仓docker编译环境快速创建方法
单独快速编译form_fwk模块:./build.sh --product-name rk3568 --build-target form_fwk --fast-rebuild。单独快速编译arkui模块:./build.sh --product-name rk3568 --build-target ace_engine --fast-rebuild。在编译命令后加 --gn-args ohos_components_checktype=3 # 似乎没啥效果。理论上支持在任意目录执行。
2024-06-17 10:42:29
1644
1
原创 最佳git同步代码的方式rebase
二者的具体区别,请各位百度下,这里不展开了,也不对选择哪一种进行暗示,请自己选择。简单说下就是前者保留了git历史,能查到pr合入过程的详细信息。后者强行理直了git树,变成线性,所有已经提交的commit都挪到身后,自己的提交放在最前面(可以通过git log查看),而且支持不断地rebase变基,使自己的代码始终保持在git的最前面,git树线性、简洁美观,分支操作省心,缺点是丢失了当初pr创建的历史信息。鉴于rebase这样的特点,下面就给大家介绍下。下面就以OpenHarmony的。
2024-06-17 09:42:47
445
原创 wsl子系统ubuntu20.04 设置docker服务开机自启动
docker在重要性毋庸置疑。掌握虚拟化必备工具。大家个人都会有台式机,那么windows的wsl子系统ubuntu应该都会开启来熟悉linux分布式开发。docker是客服OS限制的有利工具。那就开始准备docker环境吧。
2024-06-14 22:16:51
1161
原创 windows平台路径python路径字符串拼接os.path.join()出现反斜杠‘\‘问题
linux python代码windows平台下路径字符串拼接出现反斜杠
2022-09-13 15:18:09
1608
原创 【Python日志封装类基本实现】
Python日志封装类基本实现前言日志功能,作为软件开发必不可少。Python的日志封装网上也有不少,不乏抄来抄去。抄,可以。但必须验证才能转发。如果仅仅是复制粘贴,就没意思了,甚至误导别人。以下是2天内自己研究验证的新的,与大家共享。实现的思路是基于logging包。需求:支持屏幕打印和文件输出支持日期、时间、引用源文件名(不要求全路径)、行号,日志信息说明:这里是最基础的要求。更高要求实现,在后续文章介绍。实现过程直接上代码class Logger(object): ''
2022-01-20 12:32:25
788
1
原创 git clone 代码仓库中指定目录并支持git 控制版本
文章目录git clone 代码仓库中指定目录并支持git 控制版本1. 背景2.实现的思路3.实现过程记录git clone 代码仓库中指定目录并支持git 控制版本1. 背景git clone远程代码仓库时,大家时候只想下载其中某个目录或子目录。比如基于mindspore/models开源开发,实现widedeep模型训练任务时,需要下载其“official/recommend/wide_and_deep”目录代码到本地,做为代码基准,来实现自己的训练和推理业务。习惯的做法时git clone整
2021-12-19 23:17:38
1479
3
原创 制作可ssh登录镜像ascend-mindspore-armms1.5的方法
文章目录1.获取基础镜像并导入2.目标镜像制作2.1创建工作目录ascend-mindspore-arm_ssh2.2 创建Dockfile2.3 制作目标镜像3. 容器ssh登录验证1.获取基础镜像并导入基础镜像ascend-mindspore-arm网址:https://ascendhub.huawei.com/#/detail/ascend-mindspore-arm登录基础镜像网址,点击“获取镜像”在随后出现的Uniportal帐号登录界面,选择账号/邮箱登录、手机号码登录、短信登录三种方
2021-11-24 10:56:29
310
原创 制作可ssh登录镜像ascend-mindspore-armms1.5的方法
文章目录1.获取基础镜像并导入2.目标镜像制作2.1创建工作目录ascend-mindspore-arm_ssh2.2 创建Dockfile2.3 制作目标镜像3. 启动容器4.容器ssh登录验证1.获取基础镜像并导入基础镜像ascend-mindspore-arm网址:点这里登录基础镜像网址,点击“获取镜像”在随后出现的Uniportal帐号登录界面,选择账号/邮箱登录、手机号码登录、短信登录三种方式之一,登入。如果网页出现“禁止”字样,请更换登录方式。建议“短信登录”方法登录。版本界面,选择
2021-11-24 10:24:22
587
原创 CentOS7.6部署MindSpore R1.3开发环境
文章目录1.部署前提2.安装软件下载3.安装过程3.1 安装python3.7.5、NPU驱动及相关依赖3.1.1 安装指令:3.1.2 python验证:3.1.3 npu验证:3.2 安装ascend工具开发包3.3 pip3安装mindspore r1.33.3.1 安装准备,获取pip3安装指令3.3.2 安装mindspore3.3.3 安装验证3.4 安装清理4.问题排查记录4.1 未安装bzp24.2 gcc版本低5.参考文献1.部署前提1.1 背景开发小组需要验证IEEE打榜平台华为r
2021-11-24 10:13:56
1692
原创 【解决scikit_learn.libs/libgomp-d22c30c5.so.1.0.0:cannot allocate memory in static TLS block问题】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1.测试环境2.问题现象3.错误分析4.解决方案5.参考文献前言MindSpore AI框架适配WideDeep模型训练问题处理1.测试环境ubuntu18.04 aarch64 mindspore r1.5 python3.7.5 scikit_learn 1.0.1 glibc2.172.问题现象3.错误分析经过网络查询,这是libgomp在arm平台上的一个bug。libgomp gets the s.
2021-11-24 09:49:22
9774
6
原创 【适配MindSpore AI框架WideDeep模型运行报错--ModuleNotFoundError: No module named ‘_bz2‘】
目录1.测试环境2. widedeep训练报错现象3.错误分析4.解决方案1.测试环境CentOS7.6 aarch64 python3.7.5 mindspore r1.52. widedeep训练报错现象3.错误分析本机缺少特定so文件:_bz2.cpython-37m-aarch64-linux-gnu.so4.解决方案参照参考文献处理。到现有一服务器或网络搜寻下载。找到后存放路径–/usr/local/python3.7.5/lib/python3.7/lib-dynload/_b
2021-11-24 09:21:58
1580
2
原创 《图解设计模式》读书笔记(一)
目录0.前言1. 迭代器模式2.适配器模式3.模板模式4.单例模式0.前言近日在学习《图解设计模式》,记录学习心得。日本人结城浩写的,一般般,很多地方比国人大咖差远了。最近工作稍微清闲些,就顺便温习下设计模式。1. 迭代器模式该模式的优点是它在客户访问类与聚合类之间插入一个迭代器,分离了聚合对象与其遍历行为,对客户也隐藏了其内部细节,且满足“单一职责原则”和“开闭原则。该模式适用于在(自...
2020-04-09 00:05:08
331
原创 Ubuntu16虚拟机调整窗口大小自适应windows7
win7上ubuntu16虚拟机安装成功后, 默认的虚拟机窗口比较小,需要适当调整,才能把虚拟机的屏幕放大, 适合使用,以下介绍调整方法.安装vmware tools 启动虚拟机,在虚拟机管理界面上,主屏幕菜单”虚拟机”中点击”安装vmware tools(T)”,开始安装vmware tools. 虚拟机管理中心会提醒用户默认的操作步骤.这可以无视.稍等几秒,虚拟机会自动启动虚拟光驱,下载了
2016-07-10 23:16:15
17463
4
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-07-10 22:20:23
418
原创 WPF杂碎集锦
控件ToolTip文字换行 ToolTip="输入新方案名称可以新增映射方案 切换配置时,未保存配置会丢失更改"比如,TextBox的提示语需要换行
2015-12-16 15:31:07
437
转载 win7系统下将Editplus添加到鼠标右键菜单的方法
以下转载的文章适用于绿色版的editplus。win7系统下将Editplus添加到鼠标右键菜单的方法:第一、进入Windows7系统后,您同时按下win+R打开电脑的运行窗口,然后在窗口中输入regedit并单击回车,这样就可以打开电脑的注册表编辑器窗口了。 第二、接下来您在注册表编辑器窗口的左侧菜单中定位到HKEY_CLASSES_ROOT\*\shell,在shell文件
2015-06-23 17:03:16
809
转载 Eclipse设置、调优、使用
eclipse调优一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善。加快启动速度1.在eclipse启动的时候,它总是会搜索让其运行的jre,往往就是这个搜索过程让eclipse启动变慢了。(没设置时,等2-3s出现进度条,设置后直接出现进度条)只要在eclipse.i
2013-09-12 15:10:56
5007
原创 eclipse4.3 svn插件安装与字体修正
在Eclipse 中,Help -> Install New software -> Find and Install...菜单下。在弹出对话框中的输入框中输入http://subclipse.tigris.org/update作为URL添加New Remote Site。就可以让Eclipse自动下载为你安装SVN插件了,安装成功后重新启动Eclipse就OK!
2013-09-07 22:21:57
9512
原创 Win系统C++ TinyXML使用心得总结
一、TinyXml的特点 TinyXml是一个基于DOM模型的、非验证的轻量级C 解释器。它是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。1. SAX和DOM 目前XML的解析主要有两大模型:SAX和DOM。
2013-02-22 16:38:49
3904
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人