工作笔记
玄道公子
玄道男标准宅男其他资料暂时不详
展开
-
xmake经验总结1:解决c++ future/promise抛出std::system_error的问题
在xmake中解决c++ future/promise抛出std::system_error的问题原创 2022-09-14 10:38:16 · 1460 阅读 · 1 评论 -
如何优雅的退出qemu虚拟环境
在console环境下,先 按 ctrl + a, 释放之后再按 x 键 既可terminate qemu。注:1. a 和 x 均为小写。2. 必须先释放ctrl + a 之后 再按x键原创 2022-05-17 17:08:16 · 1621 阅读 · 1 评论 -
架构师成长之路工具篇(1):markdown撰写文档
今天笔者想说的工具就是markdown, 正所谓工欲善其事必先利其器,选择高效的工具自然能提升工作效率。笔者使用的markdown工具是: typoraword太重,太复杂, 在写文档的时候,常常为了调整一些格式和排版问题而花费大量时间在互联网上到处搜索,这里显示不出来,那里空白太多等等。鉴于此,笔者越来越习惯于使用markdown来撰写文档。 不管是API文档,还是模块的设计文档,又或者一些指南性的说明文档等等。当然,markdown也有缺点, 比如因为markdown是文本文件,所以其内就无法包原创 2020-12-17 18:33:43 · 869 阅读 · 0 评论 -
WSL2 Ubuntu安装Qt(包括QtCreator)
最近因为需要在Linux下使用qtcreator做一些界面开发的预研和学习,主要是因为要交叉编译Qt。但又不想再使用虚拟机了, 真的太消耗内存了。于是就想着直接使用Windows10 下面的WSL2。 怎么安装WSL2这里就不展开了,有兴趣的朋友,问问度娘就什么都知道了。在网上查了不少资料,但感觉都不全面,有一些细节和基本点没有说到,这样实际安装起来就会遇到不少坑, 所以笔者就想着自己整理一篇。 如果以后需要在其他电脑上再次安装的话,也好有个参考。笔者的环境:宿主系统: Windows10虚拟环原创 2020-09-17 10:51:45 · 11776 阅读 · 12 评论 -
使用qemu运行X86版本的QNX7.0系统
原本想使用VMWare来运行X86版本的QNX7.0系统,但是运行起来之后,没法输入。 虽然QNX官方有提供现成的QNX VMware镜像,但那不是我需要的东西,所以参照官方的QNX VMware镜像,根据它的启动脚本, 我将标准的QNX X86 BSP包中编译和启动脚本x86_64-denverton.build文件进行了修改,针对VMware的特殊情况,使用了devh-ps2ser-vm.s...原创 2020-04-29 10:36:40 · 2664 阅读 · 2 评论 -
通过qemu-img命令将raw image转换成VMware虚拟硬盘vmdk
为了在VMware中跑QNX系统, 我需要想办法将编译BSP生成的img文件固化到VMware的虚拟硬盘中去, 之前一直找不到方法,到渐渐的只能用很笨的方法几次中专。将生成的img文件通过win32DiskImager工具写入到一个U盘里面, 这之后有两种方法:直接使用U盘作为VMware的启动盘,需要创建一个虚拟硬盘,然后将这个虚拟硬盘绑定到U盘上,这种方法就需要时刻插着一个U盘,而且对U...原创 2020-04-29 10:20:54 · 11969 阅读 · 4 评论 -
通过延迟启动进入VMware workstation player的BIOS设置
最近在做一个事情,在虚拟机平台上运行X86版本的QNX系统, 更准确点的说是通过下载QNX的X86平台的BSP包来编译并在X86平台上运行。所以 为了方便,首选了VMware来模拟,但是QNX的BSP我也不太熟悉,不知道怎么弄成ISO光盘,所以就按照文档,做了一个USB启动盘,但是需要进入BIOS调整启动顺序。而VMware默认情况下BIOS启动部分却是一闪而过,基本上没法进入BIOS设置界面。...原创 2020-04-29 09:42:34 · 1986 阅读 · 0 评论 -
repo安装与简单使用
一、概述 当一个大的项目需要拆分成很多的子项目,或者说一个软件系统拆分成多个子系统。 每一个子项目或者子系统都对应一个git repository。这种需求在实际项目当中是很常见的,有的可能就直接写一个shell脚本来实现同时拉各个代码仓库的动作,但这样做难免笨拙。 特别是要做系统级别的整体分支或版本发布时,就不太方便,因此这里就可以使用repo来进行管理,像Android这么大的项...原创 2020-03-05 16:43:58 · 23547 阅读 · 17 评论 -
gdb调试coredump 文件
工作中时长会需要用到gdb工具,因此在这里陆续记录相关的使用点以作备忘。一、查看crash所在的线程这里可以使用 thread apply all bt 查看所用线程堆栈信息。...原创 2019-10-25 15:06:24 · 268 阅读 · 0 评论 -
查看gcc默认宏
有时候,会想知道当前的toolchain中,gcc的一些默认宏是怎么样的,特别是一些基于gcc的嵌入式编译工具链,更是如此, 因此做一个记录,以便后续使用。gcc -posix -E -dM - </dev/null同理,如果要查看g++的话,如下所示:g++ -posix -E -dM - </dev/null当然一般嵌入式编译工具链,都是需要交叉编译的,可能最终的形式如...原创 2019-10-22 08:21:56 · 761 阅读 · 0 评论 -
使用rename命令批量修改后缀名
我使用的操作系统是Ubuntu,也可以在Windows10下的Ubuntu子系统使用该命令,可能默认没有,可以使用 sudo apt-get install rename 的方式去安装这个包。比如经常要把 libxxx.so.1.0.0 之类的lib名修改为 libxxx.so 或 libxxx.so.1 这样的形式, linux系统里面的 链接,在Windows就失效了,所以有时候需要进行...原创 2019-09-05 14:20:14 · 1495 阅读 · 0 评论 -
Windows10 Ubuntu子系统运行 linux原生程序
工作当中会用当Ubuntu系统,但是主要的工作又是在Windows平台, 这样就需要用到虚拟机,而因为公司装了加密软件,系统本来就比较卡顿,再开虚拟机就巨卡无比了。于是就开始尝试使用Windows10的linux子系统, 然后就操作了一番,发现运行我们的交叉编译工具链时会出现,“Exec format error” , 一开始以为是 32位和64位的区别,然后就安装了32位兼容的各种包, 结果仍...原创 2019-08-05 16:56:57 · 455 阅读 · 0 评论 -
64位ubuntu编译32位程序
原文地址: https://www.cnblogs.com/mliudong/p/4086797.html公司用的有些东西比较老旧,还只支持32位,这里转载一篇以备后续查看。如上使用C4这个小工具时遇到来需要仿真32位系统的需求,发现使用-m32参数后,编译提示错误,如下:/usr/bin/ld: 未知的仿真模式: 32支持的仿真: elf_x86_64 elf32_x86_64 elf_...转载 2019-05-21 15:31:51 · 435 阅读 · 0 评论 -
linux c/c++ 创建多级目录
有时候应用程序中,需要创建目录,但如果是多级目录,直接使用mkdir函数是没法实现的,需要循环调用mkdir函数, 这里就做一个记录,以便以后需要的时候,可以直接使用。#include <unistd.h>#include <sys/types.h> #include <sys/stat.h> #include <string>boo...原创 2019-04-28 15:15:53 · 5934 阅读 · 0 评论 -
gitbook生成pdf时缺少ebook.css解决方案
在使用gitbook将自己写的电子书生成pdf文档时,遇到了缺少ebook.css的错误,网上找了很久,很多办法都是无效的,花了不少时间才发现找到一个解决方案,这里就做一个记录,以后再遇到就不需要到处寻找了。其错误如下所示:Error: ENOENT: no such file or directory, stat ‘C:\Users\45472\AppData\Local\Temp\tmp...原创 2018-10-12 16:46:01 · 2302 阅读 · 0 评论 -
c++使用function和bind绑定类成员函数时有重载函数怎么办?
一、背景最近在编写一个项目的代码时,不小心犯了一个错误, 导致项目代码编译不过,项目使用的语言是c++,一直报’bind(,xxxx)这类似的错误,开始以为是基础基类的方法有问题,但查看代码之后发现,我们要bind的成员函数,不是虚函数,也没有继承基类的函数,搞了好半天才发现问题所在。二、问题解决最终的问题,是因为此类中,内部使用(protected或private)的函数重载了我们需...原创 2018-07-23 09:15:38 · 5770 阅读 · 2 评论 -
git submodule使用以及注意事项
一、背景在平时的软件开发过程中常常会有这样的场景,自己负责的某个模块会依赖其他模块或者第三方的library。这时你自己的模块是一个独立的代码仓库,你想要实现这样一种功能,当你从你的模块的代码仓库里把代码拉到本地来的时候,能自动的将你依赖的模块或第三方库都拉到指定的目录当中去。当然要实现这个功能的方法有很多,比如使用repo之类的工具,又比如如果你使用的是svn作为版本管理工具,那么你可以...原创 2018-06-07 15:25:28 · 27470 阅读 · 0 评论