Linux
文章平均质量分 50
Linux
缓下脚步
Life was like a box of chocolates, you never know what you’re gonna get.
展开
-
C/C++中container_of相关详解
该宏定义可以在编译时就直接计算出偏移量,避免了运行时的计算开销,因此比通过变量名访问成员的方式更为高效,通常用在需要直接访问结构体成员的底层代码中,例如在操作系统内核、嵌入式系统以及一些高性能计算应用中。然后,调用offsetof()即可得到member在type类型中的偏移量,最后返回一个指向type类型的指针。如上例,pname指向stu的name成员,通过container_of()宏获得了指向整个struct student结构体的指针pstu,然后就可以访问id和name成员了。原创 2024-03-13 09:59:11 · 519 阅读 · 1 评论 -
Linux内核内存管理架构详解
因为访问效率等原因,内核对内存采用简单的线性映射,但是因为32位CPU的寻址能力(4G大小)和内核地址空间起始的设置(3G开始),会导致内核的地址空间资源不足,当内存大于1GB时,就无法直接映射所有内存。高端内存分配的内存是虚拟地址连续而物理地址不连续的内存,一般用于内 核动态加载的模块和驱动,因为内核可能运行了很久,内存页面碎片情况严 重,如果要申请大的连续地址的内存页会比较困难,容易导致分配失败。内核内存管理的核心工作就是内存的分配回收管理,其内部分为2个体系:页管理和对象管理。原创 2024-03-05 14:26:19 · 1380 阅读 · 0 评论 -
GDB使用方法总结
bt fullbt full Nbt full -N用define可以自定义命令,用document可以给自定义的命令加说明,利用help 命令名可以查看定义的命令。define 命令名命令…………enddocument 命令名说明endhelp 命令名以下示例定义了名为li的命令。原创 2023-06-26 14:02:12 · 442 阅读 · 1 评论 -
Makefile基本原理详解及使用
一个企业级项目,通常会有很多源文件,有时也会按功能、类型、模块分门别类的放在不同的目录中,有时候也会在一个目录里存放了多个程序的源代码。 这时,如何对这些代码的编译就成了个问题。Makefile 就是为这个问题而生的,它定义了一套规则,决定了哪些文件要先编译,哪些文件后编译,哪些文件要重新编译。 整个工程通常只要一个make命令就可以完成编译、链接,甚至更复杂的功能。可以说,任何一个 Linux 源程序都带有一个Makefile 文件。 1. 管理代码的编译,决定该原创 2023-06-25 15:43:50 · 1447 阅读 · 1 评论 -
Linux将用户添加到组
【代码】Linux将用户添加到组。原创 2023-06-19 19:28:47 · 116 阅读 · 0 评论 -
Ubuntu+Pycharm+QtDesigner,并配置Pyqt5
2. 安装ubuntu环境下所需要的依赖包。3. 安装QtDesigner。4.1 添加QtDesigner。4. 设置Pycharm。4.2 添加PyUIC。1. 安装PyQt5。原创 2023-06-17 18:00:44 · 3234 阅读 · 3 评论 -
Linux(Ubuntu)下PyQt WebEngineView加载本地HTML文件及显示空白问题
同时,还要检查是否安装了PyQt5-stubs环境,如果没有该包也仍旧无法正常显示。代码在win下可以正常加载运行,但是移植到Linux下缺加载不出来,一直显示空白。成功显示了本地HTML文件。1.加载本地Html网页。原创 2023-06-16 16:57:14 · 1278 阅读 · 1 评论 -
Ubuntu下pyinstall将PyQT5打包可执行程序
会生成dist和build文件夹,可执行程序即在dist中。-w:不要console(取消类似于cmd的黑框框)-i:后面接图标地址(图标一定要是标准的ico格式)最后面接的是要打包的程序:main.py。1.首先安装pyinstaller。可执行程序即在dist中。2.2 单文件夹打包。3. 运行可执行文件。原创 2023-06-16 10:27:17 · 904 阅读 · 0 评论 -
调用串口报错:Permission denied: ‘/dev/ttyUSB0‘
修改权限为可读可写可执行,但是这种设置在重启后,下次使用时,又会出现这种问题,还要重新设置一遍。即把用户名加入了dialout用户组。重启后,就可直接使用了。因为一般情况下不是root用户,对端口没有权限。usrname: 用户名。原创 2023-06-15 19:23:44 · 1225 阅读 · 0 评论 -
Ubuntu18.04 + Pycharm 安装教程
官网:https://www.jetbrains.com/pycharm/download/#section=windows。选择 “Community”版本。2. 下载后,解压.gz文件。4. 添加快捷图标至任务栏。1.Pycharm下载。PS:修改相应路径。原创 2023-06-15 11:23:05 · 1322 阅读 · 0 评论 -
Ubuntu 下同时存在Python3.6和Python3.9,将默认设置为Python3.9
ubuntu18.04下默认已经安装了Python3.6,现在由于其他需要又装了python3.9,但现在终端中输入python3 --version 命令显示默认加载python3.6,所以需要将默认设置改为python3.9来进行启动。3.'python3 --version' 查看Python的默认版本已经更改至了3.9。原创 2023-06-14 13:47:41 · 784 阅读 · 0 评论 -
Ubuntu18.04 (Python3.9) 报错 ImportError: Cannot import name ‘sysconfig‘ from ‘distutils‘
PS:Python3.5以后的版本,在安装distutils时,要以具体版本来进行安装。全部安装成功后, pip -V 可以正常运行使用pip。2.2 安装distutils。原创 2023-06-13 17:19:45 · 714 阅读 · 2 评论