
linux
文章平均质量分 56
Outman-YYYY
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ API设计之风格
当然,也可以使用内部链接隐藏实现中的符号名,比如将符号名声明为静态的,这样它们的作用域就限制在.c文件之中了。通过这种方式,可以确保任何这样的函数都不会被导出到外部,从而不会导致符号冲突。相对于运行时开销而言,代码体积是需要优先考虑的因素,那么应该选择面向对象方案,而非模板。模板的一个重要属性是,不同于使用继承时的动态(运行时)多态,它支持静态(编译时)多态。数据驱动型程序指的是:通过每次运行时提供不同的输入数据,它可以执行不同的操作。模板进一步的益处,对于特定类型的实例类,可以特化它的某些方法。原创 2022-08-25 17:11:29 · 811 阅读 · 0 评论 -
在x86虚拟机搭建arm64交叉编译环境记录
解决方案:https://elinux.org/Jetson/TX1_Sample_Root_Filesystem,按照文章中步骤操作,直至执行上述命令不报错。指定一个或多个目录作为所有其他搜索目录的前缀。该变量re-root了整个搜索过程到指定位置。默认的搜索顺序设计时考虑了最常用到最不常用的场景,实际工程中可以通过调用多次带有。选项的命令来修改搜索顺序。一旦搜索成功,则结果将被缓存下来。上述两个变量在交叉编译时,用于指定搜索根路径很有用。变量也可以用来指定一个目录作为搜索目录前缀。...原创 2022-08-16 16:32:45 · 2946 阅读 · 1 评论 -
新安装的Ubuntu虚拟机,在安装完VMware Tools后还是不能进行复制粘贴
新安装的Ubuntu虚拟机,在安装完VMware Tools后还是不能进行复制粘贴文章目录新安装的Ubuntu虚拟机,在安装完VMware Tools后还是不能进行复制粘贴问题描述解决方案问题描述如标题解决方案前提还是要保证VMware Tools正常安装完成不用反复重装VMware Tools,没用,问题不在这先卸载open-vm-tools(若已安装)sudo apt autoremove open-vm-tools安装open-vm-tools-desktopsudo a原创 2022-05-27 17:42:36 · 1355 阅读 · 2 评论 -
在gdb中调试release的程序(c++)
在gdb中调试release的程序(c++)文章目录在gdb中调试release的程序(c++)方法一:从`debug`版中提取调试符号方法二:直接使用`debug`版作为符号源使用release编译的可执行文件不包含调试信息,没有调试符号文件,所以在gdb中使用l和bt命令都看不到相应的源代码信息方法一:从debug版中提取调试符号生成调试符号表:# pp_debug为编译好的debug版可执行程序objcopy --only-keep-debug pp_debug pp_debug.symb原创 2022-04-01 15:03:50 · 1912 阅读 · 0 评论 -
c++ 多线程死锁调试
c++ 多线程死锁调试文章目录c++ 多线程死锁调试c++标准库中的锁RAIIstd::mutexstd::timed_mutex死锁调试(Linux)调试思路(4.4.2):死锁条件解决办法c++标准库中的锁std::mutex:最基本的互斥对象std::recursive_mutex:可以递归使用(重入)的互斥对象,递归调用不会导致死锁std::timed_mutex:带有超时功能,可以提供一个等待时间,如果超过这个时间则不会继续等待,返回失败std::recursive_timed_mu原创 2022-03-31 11:47:53 · 1298 阅读 · 0 评论 -
关于sudo
关于sudo文章目录关于`sudo`授予普通用户`sudo`权限用`sudo`权限执行最后一条执行过的命令在后台运行`sudo`命令使用`sudo`以其他用户身份运行命令验证`sudo`凭据,延迟`sudo`密码输入时间使用`sudo`列出用户权限使用`sudo`显示另一个用户的权限Super User Do使用sudo,可以在不知道root密码或者以root用户登录的情况下访问root权限授予普通用户sudo权限# 创建一个具有主文件夹的用户并将该用户添加到 sudo 组sudo usermo原创 2022-03-31 10:32:45 · 314 阅读 · 0 评论 -
shell 捕获异常,日志重定向
shell 捕获ctrl + c,日志重定向捕获ctrl + c# trap 后面可跟指令,可跟函数trap func_cleanup 2将脚本中所有打印输出到日志# 方法一: 在脚本的前面加上下面的命令即可,但这种方式与 trap 命令不兼容,即捕获不了ctrl cexec &> >(tee -a /home/xiaoming/log/test.log)# 方法二: 递归调用if [[ $1 == "log" ]]; then main "$@" da原创 2022-01-26 10:35:37 · 3376 阅读 · 0 评论 -
shell 从数组中删除元素
shell 从数组中删除元素文章目录shell 从数组中删除元素通过下标,从一个数组中删除元素根据元素删除从一个数组中排除另一个数组中的所有内容通过下标,从一个数组中删除元素# 删除第二个元素array=(a b c d a b c d)unset array[1]echo ${array[*]}#----------------------a c d a b c d根据元素删除# 删除'b'array=(a b c d a b c d)array=( ${array[*]/b}原创 2022-01-25 16:49:12 · 4298 阅读 · 3 评论 -
pytest 的使用
pytest 的使用之前用到的,笔记记录# 静默模式,不打印多余信息-q# 所有除了通过-a# 生成简单报告-r-q: 安静模式, 不输出环境信息-v: 丰富信息模式, 输出更详细的用例执行信息-s: 显示程序中的print/logging输出pytest --resultlog=./log.txt 生成logpytest --junitxml=./log.xml 生成xml报告测试类以 “Test” 开头输出字符列表• f - failed• E - error• s原创 2021-11-22 21:05:32 · 771 阅读 · 0 评论 -
将软件包打包为一个service服务过程记录
将软件包打包为一个service服务过程记录文章目录将软件包打包为一个service服务过程记录前置条件:安装必要的软件用于生成模板第一步:新建一个文件名第二步:`cd `到新建的文件名,然后执行`dh_make -e`命令第三步:创建`.service`文件,放到第二步生成的`debian`目录下第四步:修改`rules`文件,模板如下第五步:执行`dpkg-buildpackage -rfakeroot`命令第六步:前面步骤都只是为了生成模板,实际使用的时候只需取第五步中生成的文件夹用于打包即可(删除原创 2021-11-22 21:02:21 · 1212 阅读 · 2 评论 -
shell如何获取当前登录的用户名
某些环境下会存在多个用户及数组,终端显示的用户名和属组并不是真正登录的用户数组,一下命令可以获取到当前登录的用户名,即使切换到root用户去执行也能得到相同的结果而不是“root”:getent passwd `who` | head -n 1 | cut -d : -f 1...原创 2021-11-22 20:57:33 · 3195 阅读 · 0 评论 -
Ubuntu在进行apt install安装的时候默认输入y的几种方法
Ubuntu在进行apt install安装的时候默认输入y的几种方法文章目录`Ubuntu`在进行`apt install`安装的时候默认输入`y`的几种方法方法一(推荐):直接使用`apt`的`-y`选项方法二:`echo`命令通过管道传递方法三:`yes`命令通过管道传递方法四:修改`apt.conf`文件方法一(推荐):直接使用apt的-y选项sudo apt install whatever -y方法二:echo命令通过管道传递echo "y" | sudo apt install原创 2021-10-15 15:07:03 · 6844 阅读 · 1 评论 -
Ubuntu将实体机镜像转为docker镜像
Ubuntu将实体机镜像转为docker镜像文章目录`Ubuntu`将实体机镜像转为`docker`镜像背景方案一:直接备份文件系统方案二:在实体机上通过`dpkg -l`分析出所有已安装的依赖,然后直接在`docker`内在线安装这些依赖背景需要复刻一个与实体机一样环境的docker镜像也许有其他方案,但没研究过,只记录这次折腾的。方案一:直接备份文件系统个人看来,Ubuntu本质上不都是文件系统么,那就直接备份文件系统吧切换到root用户root@root:/tmp# cd /原创 2021-10-15 10:31:46 · 3225 阅读 · 0 评论 -
关于shell脚本
关于shell脚本文章目录关于shell脚本脚本调试命名规则命令引用(两种方式)只读变量位置变量退出状态码变量格式化输出`printf`算术运算内建随机数生成器变量短路运算条件测试命令数值测试字符串测试文件测试bash的配置文件配置文件执行顺序信号捕捉trap通过图形化界面-非交互式登录脚本调试检测脚本中的语法错误bash -n /path/to/some_scripts调试执行bash -x /path/to/some_scripts命名规则变量名大写局部变量小写函数名小写命原创 2021-10-11 16:40:23 · 117 阅读 · 0 评论 -
【Ubuntu】wireshark不能用,提示qt插件问题,This application failed to start because it could not find
【Ubuntu】wireshark不能用,提示qt插件问题,This application failed to start because it could not find or load the Qt platform plugin "xcb"in “”.今天在准备使用wireshark的时候,突然发现用不了了,报以下错误:hhh@hhh ~ $ wiresharkThis application failed to start because it could not find or loa原创 2021-03-18 16:20:02 · 3472 阅读 · 4 评论 -
关于windows下编程动态库链接问题
关于windows下编程动态库链接问题文章目录关于windows下编程动态库链接问题背景动态库遇到的问题使用`vscode`+`cmake`使用`visual studio`背景本来开发工作都是在ubuntu下进行的,最近搞一个跨平台产品的驱动,结果拿到的sdk在ubuntu下跑不起来,便想着看能不能再windows下先跑起来,但是之前也没有windows平台的开发经验,折腾了半天还是没搞定,请教了同事才得以解决,做个简单的记录。动态库windows下的动态库分为xxx.lib和xxx.dll,之原创 2020-12-23 10:59:42 · 1130 阅读 · 0 评论 -
docker命令大全
docker命令大全容器生命周期管理run[常用]#创建一个新的容器并运行一个命令docker run [OPTIONS] IMAGE [COMMAND] [ARG...]start/stop/restart[常用]#启动一个或多个已经被停止的容器docker start [OPTIONS] CONTAINER [CONTAINER...]#停止一个运行中的容器docker stop [OPTIONS] CONTAINER [CONTAINER...]#重启容器docker rest原创 2020-12-14 20:41:37 · 209 阅读 · 0 评论 -
NFS挂载过程记录
NFS挂载文章目录NFS挂载安装`NFS`修改`NFS`配置启动服务测试`NFS`本机挂载远程挂载服务器端安装NFSsudo apt install nfs-kernel-server修改NFS配置sudo gedit /etc/exports# 添加以下内容/home/nfsroot *(rw,sync,all_squash,anonuid=1000,anongid=1000)/home/nfsroot *(rw,sync,no_root_squash) #选择一个即可其中原创 2020-12-07 22:04:18 · 674 阅读 · 0 评论 -
windows连接wifi通过有线网口共享网络给Ubuntu
windows连接wifi通过有线网口共享网络给ubuntu文章目录`windows`连接`wifi`通过有线网口共享网络给`ubuntu`设置`/etc/network/interfaces`设置`DNS`设置`route`临时设置方法永久设置方法重启网络服务设置/etc/network/interfaces# ens33改为自己的网卡名,下同auto ens33iface ens33 inet dhcp设置DNSnameserver 114.114.114.114设置route临时原创 2020-12-07 22:03:11 · 1388 阅读 · 0 评论 -
docker ssh 配置(可用vscode连接)
docker ssh 配置文章目录docker ssh 配置宿主机端容器端宿主机端# 创建macvlan类型的docker网卡,并绑定宿主机的host网卡,必须加subnet参数docker network create --driver=macvlan --subnet=192.168.84.0/24 --gateway=192.168.84.1 -o parent=ens39 vmnetdocker network connect vmnet test_ssh容器端docker run原创 2020-10-10 20:04:12 · 564 阅读 · 0 评论 -
虚拟机必备的三张网卡
虚拟机必备的三张网卡文章目录虚拟机必备的三张网卡虚拟机网络编辑器虚拟机设置重启虚拟机虚拟机网络编辑器在虚拟机的——编辑——虚拟机网络编辑器里进行设置,分别添加:桥接模式:注意选对网卡仅主机模式:可以指定IP网段NAT模式:可以指定网段虚拟机设置在虚拟机——虚拟机设置——网络适配器中增加3个适配器,分别对应上面的三张“网卡”:网络连接模式在“自定义”中进行选择,记得一一对应重启虚拟机在虚拟机里面设置:HOST(仅主机)指定IPLAN (桥接)指原创 2020-09-18 11:35:04 · 889 阅读 · 0 评论 -
Ubuntu下Finalshell的安装
Ubuntu下Finalshell的安装安装rm -f finalshell_install_linux.shwget www.hostbuf.com/downloads/finalshell_install_linux.shchmod +x finalshell_install_linux.sh./finalshell_install_linux.sh安装路径/usr/lib/FinalShell/配置文件路径/home/$USER/.finalshell/...原创 2020-09-18 11:31:30 · 3007 阅读 · 6 评论 -
ubuntu 18.04 离线源制作与安装
ubuntu 18.04 离线源制作与安装文章目录ubuntu 18.04 离线源制作与安装下载安装包(主机:可联网)生成包索引文件(主机:可联网)生成签名(主机:可联网)在不能上网的目标机上创建缓存目录(目标机:不能联网)更换为本地源(目标机:不能联网)导入公钥(目标机:不能联网)更新源(目标机:不能联网)一些问题:删除密钥关于/dev/null报错:sudo: dpkg-scanpackages: command not found注意普通用户用sudo echo权限依旧写入不了文件Ubuntu中u.原创 2020-09-18 11:27:49 · 3609 阅读 · 3 评论 -
更新vscode到最新版(1.47.1)后,ssh连接虚拟机老是断开,频繁弹窗需要重新加载窗口
一、最开始怀疑是openssl的版本太低导致的,把win10和虚拟机下的openssl都升级了。没用。二、按照网友给的方法改了~/.config/ssh/config文佳,增加断线重连机制。没用。三、重装低版本,1.43.1.没用四、后面突然想到自己的win环境下vscode用的是中文,会不会是由于这个原因造成的,换回英文后,问题解决。...原创 2020-07-16 09:00:35 · 7015 阅读 · 11 评论 -
如何在docker内愉快的使用vscode进行代码编写
如何在docker内愉快的使用vscode进行代码编写先在官网下载好vscode的deb包将deb包通过docker cp 拷进docker内进行安装在安装的时候如果报缺失相关的依赖,运行apt --fix-broken install进行自动修复,然后重新安装即可然后如果直接运行code会报以下的错误,因为docker内都是root权限,你需要用它提示的方法启动:You are trying to start vscode as a super user which is not原创 2020-06-06 14:59:37 · 3917 阅读 · 1 评论 -
如何在docker内运行ROS2(dashing)的“小乌龟(turttlesim)”
如何在docker内运行ROS2(dashing)的“小乌龟(turttlesim)”文章目录如何在docker内运行ROS2(dashing)的“小乌龟(turttlesim)”前置条件deb安装turttlesim源码安装turttlesim运行turttlesim关于docker方法一:需重新启动一个新的容器开放权限(在主系统)启动docker可视化方法二:不需要重新启动新的容器分别查看主机与docker的ip地址在docker内在主机注意测试是否可以显示图像测试是否可以显示图像前置条件首先需要原创 2020-05-18 15:48:29 · 5772 阅读 · 6 评论 -
Ubuntu16.04下完美安装python3.6.x(以3.6.9为例)及对应版本的pip
Ubuntu16.04下用源码完美安装python3.6.x(以3.6.9为例)及对应版本的pip文章目录Ubuntu16.04下用源码完美安装python3.6.x(以3.6.9为例)及对应版本的pip如果你是个幸运儿,网络带有梯子,你就没必要用源码安装了下载python3.6.9源码安装安装对应版本的pip下载get-pip.py文件安装pip3.6pip软件的批量安装写在前面:我为什么要用源码安装呢?还不是因为不用源码就死活装不上!千万别卸载系统自带的python2.7和python3.5!!!原创 2020-05-09 22:37:14 · 8689 阅读 · 10 评论 -
Ubuntu16.04 如何更改pip的源(国内镜像源)
Ubuntu16.04 如何更改pip的源(国内镜像源)文章目录Ubuntu16.04 如何更改pip的源(国内镜像源)pipy国内镜像源安装的时候每次手动指定镜像源永久更改pip的源pip在下载或者安装时默认访问pypi,速度很慢;好在可以用国内的pip的镜像源pipy国内镜像源#目前pipy国内镜像源有#清华https://pypi.tuna.tsinghua.edu.cn/sim...原创 2020-05-08 11:21:36 · 4025 阅读 · 0 评论 -
ubuntu 16.04 用离线源进行 apt-get安装
ubuntu 16.04 离线安装文章目录ubuntu 16.04 离线安装下载安装包在不能上网的目标机上创建缓存目录生成包索引文件(主机)更换为本地源(目标机)更新源(目标机)一些问题:关于/dev/null报错:sudo: dpkg-scanpackages: command not found说明:该方法是为了解决不能上外网的机器的安装依赖问题。大致思路就是将安装包及其依赖放到本地目录,...原创 2020-05-07 11:21:20 · 4557 阅读 · 1 评论 -
关于谷歌开源编译工具bazel的使用
bazel优点分布式构建工具,增量编译速度快,支持remote方式,命令简单易用适用于单一代码仓库,所有的代码都在一个文件夹树里面(由WORKSPACE指定)每一个目标都可以指定可见性,可以指定什么目标是其他项目组可以用的比如内部测试的类可以被隐藏漏写了依赖会提示找不到头文件,可以保证所有代码中用到的头文件对应的目标都在当前目标的依赖列表里面bazel支持依赖远端代码库,可以...原创 2020-04-25 13:26:28 · 6285 阅读 · 0 评论 -
Ubuntu16.04下完美单独安装ROS2的编译工具colcon
Ubuntu16.04下完美安装colcon编译工具文章目录Ubuntu16.04下完美安装colcon编译工具安装pip3升级pip3升级setuptools安装colcon安装pip3sudo apt-get install python3-pip升级pip3curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pysudo p...原创 2020-04-25 13:16:11 · 1860 阅读 · 1 评论 -
Ubuntu16.04用源码安装python3.6.4过程及问题
Ubuntu16.04用源码安装python3.6.4过程及问题文章目录Ubuntu16.04用源码安装python3.6.4过程及问题注意正文问题注意Ubuntu16.04自带python2.7和python3.5,且其源内最高支持版本为python3.5,所以不能直接通过apt-get安装。切记!!!千万不能卸载系统自带的python,Ubuntu系统的默认桌面及很多软件都是基于pyth...原创 2020-04-21 16:31:18 · 659 阅读 · 0 评论 -
【个人笔记】从头开始安装Ubuntu16.04,安装完后需要做些什么
从头开始安装Ubuntu16.04,安装完后需要做些什么文章目录一、安装vmtools二、安装ssh服务三、生成sshkey四、配置vscode远程连接虚拟机五、安装terminator六、安装docker七、配置docker拉取仓库环境八、升级安装python3.6及pip3九、安装及配置ccache九、安装及配置ccache一、安装vmtools可以安装传统的VMtools,也可安装op...原创 2020-04-19 00:17:41 · 536 阅读 · 0 评论 -
vscode利用ssh服务远程连接虚拟机、服务器进行开发的完美教程
vscode利用ssh服务远程连接虚拟机、服务器进行开发的完美教程文章目录vscode利用ssh服务远程连接虚拟机、服务器进行开发的完美教程一、在远端安装并启动ssh服务二、在本地(windows端)生成ssh-key三、设置vscode免密连接虚拟机四、安装vscode的ssh插件五、利用插件连接虚拟机六、重新安装插件此文以虚拟机为例,服务器的操作相同。需要在本机端安装git与vscode。...原创 2020-04-18 17:37:10 · 8139 阅读 · 4 评论 -
ubuntu16.04,卸载系统自带的python3.5引发了一宗惨案,好在最终完美解决
!如果着急解决问题,建议直接跳到【解决问题】章节文章目录背景安装python3.6设置python优先级设置python关联版本为python安装对应的pip卸载python3.5悲剧发生解决问题重新安装Ubuntu桌面修改gi库名及安装gi更改gnome-terminal文件成了!背景由于项目需求,在调试代码的时候发现一个由python版本导致的错误(Ubuntu16.04 python3...原创 2020-04-16 22:36:30 · 7053 阅读 · 5 评论 -
ccache可通过简单的搭建,提升10倍c++编译速度,亲测有效!
关于ccache源码下载地址#安装:可通过源码编译安装以及apt安装#源码安装./configuremakemake install#apt安装sudo apt-get install ccache#配置#在任何目录运行(设置最大缓存容量)ccache -M 20Gvim ~/.bashrc#ccache export USE_CCACHE=1 export CCA...原创 2020-04-09 21:54:13 · 1047 阅读 · 0 评论 -
【Ubuntu16.04 升级pip问题】you are using pip version 8.1.1, however version 20.0.2 is available.
【Ubuntu16.04 升级pip问题】you are using pip version 8.1.1, however version 20.0.2 is available. you should consider upgrading via the ‘pip install --upgrade pip’ command.文章目录现象解决过程解决方案现象因为安装某些软件要用到pip,但...原创 2020-03-20 09:31:07 · 22769 阅读 · 12 评论 -
偶得江湖残卷《CMake Practice.pdf》照着练习cmake技能大大提升,却在最后一章差点走火入魔
偶得江湖残卷《CMake Practice.pdf》照着练习cmake技能大大提升,却在最后一章差点走火入魔文章目录残卷原文说明解决方案在我手里的《CMake Practice.pdf》残卷的最后一章的“编写属于自己的FindHello模块”,少写了一条指令残卷原文接下来,我们在t6示例中演示如何自定义FindHELLO模块并使用这个模块构建工程:请在建立/backup/cmake/中建立...原创 2020-03-17 21:21:00 · 953 阅读 · 0 评论 -
震惊!在docker内运行apt-get upgrade,docker环境直接从16.04升到18.04
文章目录简单说明环境说明懵逼操作初始系统版本运行apt-get upgrade再次查看系统版本总结简单说明之前为了实现交叉编译,在x86的虚拟机上搭建了arm 64的docker环境,具体搭建流程见史上较全docker镜像制作流程(有基础镜像,非docker build),在其中也遇到了一些坑,也简单做了笔记https://blog.youkuaiyun.com/qq_29935433/article/d...原创 2020-03-13 14:59:32 · 1469 阅读 · 0 评论 -
【填坑!】在x86的虚拟机上搭建arm64的docker,之前一直都只能使用“一次性”docker,重新run就报错standard_init_linux.go:211: exec user proc
文章目录来填坑啦!走过的坑具体解决方法【填坑!】在x86的虚拟机上搭建arm64的docker,之前一直都只能使用“一次性”docker,重新run就报错standard_init_linux.go:211: exec user process caused “exec format error”【原标题】留个坑,在amd64的虚拟机上搭建arm64的docker,只能使用一次,重启电脑后再r...原创 2020-03-11 20:50:04 · 1847 阅读 · 0 评论