- 博客(19)
- 收藏
- 关注
原创 Qt编码设置
通过Qt Creator,在“选项”中找到“文本编辑器”的“行为”确认字符编码为UTF-8,添加BOM。方法一,在有中文的地方包含预编译宏。方法二,在pro文件中添加。
2023-09-04 15:08:47
882
1
原创 解析内核SEGFAULT错误原因
SEGFAULT信息解读segfault at 引起故障的地址ip 指令的内存地址sp 堆栈指针地址, 及栈顶指针segfault at 1 ip 0000000000000001 sp 00007fffefc37898 error 14 in elf_reload_mgr[7f90dac5d000+a000]error code是位运算,说明:bit 0 == 0: no page found1: protection faultbit 1 == 0: read access1: wri
2021-12-10 15:59:15
1215
原创 Git子模块
Git子模块子模块添加# add submodule to track master branchgit submodule add -b branch_name URL_to_Git_repo optional_directory_rename子模块删除#删除子模块目录及源码rm -rf 子模块目录 #删除项目目录下.gitmodules文件中子模块相关条目vi .gitmodules #删除配置项中子模块相关条目vi .git/config #删除模块下的子模块目录,每个
2021-04-13 10:28:52
153
原创 编译lsblk工具,获取硬盘分区信息
下载util-linux-2.35.1.tar.gz1.修改configure文件显示设定build_lsblk=yes,enable_lsblk=check2.执行configure并make./configure --disable-all-programs --enable-libblkid --enable-libmount --enable-libsmartcols3.结果0 17:19:53 .libs $ ldd ./lsblk linux-vdso.so.1 (0x000
2020-05-13 18:17:32
1277
1
原创 内存的分段、分页机制
摘录自《程序员的自我修养》1.5节早期的计算机中,内存有限,在运行多个程序时有如下问题:1.地址空间不隔离:程序直接访问物理内存,程序间互相影响;2.内存使用效率低:需要将整个程序载入内存,程序切换时候,在内存和磁盘间交换效率低下;3.程序运行地址不确定:因为直接访问物理内存,使用的大多是固定地址,给程序编写造成一定的麻烦;分段增加了虚拟地址,映射到物理地址,解决了第一个和第三个问题。...
2020-01-03 17:29:04
174
原创 树莓派3B源码安装ROS及raspicam_node
ros版本:kinetic树莓派3B版本:busterraspicam_node版本:0.4.0#sudo apt install dirmngr1.添加ROS仓库 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/...
2019-12-21 14:26:57
1134
原创 Linux Shell命令使用技巧
Awk命令截取字符串,并去重grep -nr "\.service" arm64_midware/ mips64_midware/ x64_deb_midware/ x64_rpm_midware/ |awk -F: '{print $1}' |awk '!a[$0]++{print}' > servicea.第一步,使用grep命令得到4个xxx_midware目录中所有包含"...
2019-12-09 14:16:13
205
原创 GDB调试Release程序
一、gdb调试release程序从debug版程序projectD中生成符号表projectsymbol.dbgobjcopy --only-keep-debug projectD projectsymbol.dbg调试release版程序projectR,同时加载符号表projectsymbol.dbggdb --symbol=projectsymbol.dbg -exec=pr...
2019-11-07 19:06:27
1361
原创 结构体对齐的重要性
最近在工作中被结构体对齐问题坑了一天的时间,郁闷的不行不行,特别记录下来,以供大家参考。 事情是这样的,因业务需要增加了一个结构体,里面用到了信号量,当时写完联调的时候只测试了windows平台,因为win32/linux代码几乎一样,就没测试linux平台,可后来linux平台居然出现了莫名其妙的问题。好了,我先将简化后的代码整理如下:#include <stdio.h>...
2019-07-04 16:12:39
2566
原创 C++ mutex和std::atomic性能比较
C++ mutex和std::atomic性能比较使用mutex进行访问控制,mutex.c//方案1:mutex锁保证线程安全#include<thread>#include<iostream>#include<mutex>using namespace std;mutex m;const int N=1e6;int n;void ...
2019-06-26 17:41:05
4764
原创 MySQL相关问题
Ubuntu完全卸载MySQL 5.71. 卸载mysql包sudo apt-get remove mysql-server mysql-client mysql-common2. 清理残留数据sudo dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -Psudo rm -rf /etc/mysql /var/lib/mysql ...
2019-06-06 15:48:22
109
原创 编译安装OpenDDS
A. Linux环境(Debian 8.6)配置工程,指定安装目录./configure --prefix=/opt/OpenDDS-3.12编译make -j20设定安装环境变量export INSTALL_PREFIX=/opt/OpenDDS-3.12安装make install拷贝其他必须文件cp /root/OpenDDS-3.12_Source/ACE_wrapp...
2019-04-19 13:39:44
1095
原创 安装、使用Modeling SDK
A. 配置Eclipse环境安装JDK、JRE,测试版本jdk-8u191-windows-x64。安装Eclipse,版本必须是eclipse-modeling-luna-SR2-win32-x86_64(位数无关)。进入Eclipse,“help”→“Install New Software”→“Add”→“Archive”,选择opendds_modeling_site.zip进行安...
2019-04-19 13:39:32
673
原创 Linux系统安装Nvidia加速显卡驱动
Linux系统安装Nvidia加速显卡驱动Nvidia显卡驱动下载选择对应显卡型号的驱动下载https://www.nvidia.com/Download/index.aspx?lang=cn进入命令行界面Ctrl+Alt+F1 切换至Console 界面如果有旧驱动,卸载$ sudo apt-get remove --purge nvidia*第一次安装新驱动,应该会失败,因...
2019-04-12 09:47:41
437
原创 C语言-动态库里的全局变量/静态变量
动态库里的全局变量/静态变量一般情况动态库在被系统加载后,代码段只有一份,所有使用者共享。对于代码段要分两种情况:如果是多进程的话,数据段在每个进程中拥有一个独立的副本,所以数据是安全的。如果是多线程的话,数据段在同一个进程中是同一个地址空间,所以数据是不安全的。共享数据段共享数据段可以解决多个进程希望通过一个动态库里的某个全局变量来实现进程间通信的问题。...
2018-11-27 09:04:39
4288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人