- 博客(30)
- 资源 (32)
- 收藏
- 关注
原创 自己构建的交叉编译器找不到PATH_MAX
进入到交叉gcc的include目录查找PATH_MAX,发现是在linux/limits.h这个头文件定义的,这是内核头文件,同时我在用我的交叉gcc编译protobuf时,查看报错PATH_MAX找不到的文件,protobuf提示包含#include <limits.h>是为了提供PATH_MAX。这个新的gcc编译使用了PATH_MAX宏的代码还是会找不到。尝试对比能用的和不能用的incude-fixed/limits.h,差别不大,前后包了一层宏定义,替换一下能用的这个头,他妈的果然行了。
2025-03-20 18:08:22
449
原创 linux 添加自定义文件类型,自定义文件图标,自定义类型默认打开应用 启动菜单
xdg-icon-resource install --size 16 --mode system --context mimetypes xxx.png mime类型里面的icon名称。/usr/share/mime/packages/xxx.xml 定义mime类型,mime-database数据库配置。/usr/share/applications/mimeapps.list mime与默认打开程序的关系。/usr/share/icons/ 图标文件。强制更新icons资源。
2025-03-20 12:39:25
145
原创 gcc编译方式
a机器上的编译器得是个交叉编译器,才能构建出在b上跑的编译器,b上跑的编译器也是一个交叉编译器,才能回过头产生a上跑的代码。a机器上的编译器得是个交叉编译器,才能构建出在b上跑的编译器,b上跑的编译器也是一个交叉编译器,产生的代码才能再c上跑,a机器上的编译器得是个交叉编译器,才能构建出在b上跑的编译器,b上跑的编译器实际是一个本地编译器。cpu架构-厂商-系统 如x86_64-pc-linux-gnu。在a机器造一个编译器,在a上跑,给b机器生成代码。在a机器造一个编译器,在b上跑,给a机器生成代码。
2025-03-20 12:22:14
207
原创 centos6.10 编译gcc11.5.0 支持mutilib(32bit,64bit)glibc2.11.3
64位glibc的的头文件和32位glibc的基本一样,区别是include/gnu/stubs-32.h include/gnu/stubs-64.h,其他的头64位生成的有包含对32位的条件编译宏,可以兼容32位。就知道怎么配置glibc的32位和64位的安装目录了,下次编glibc就知道怎么设置--prefix 还有关键的lib目录和include的目录的安装位置了,第一次编放错了只能手动copy到对应位置了,这里glibc的安装目录,编译gcc的时候识别不到,gcc只能找几个固定位置的glibc。
2025-03-18 16:39:59
586
原创 centos6.10 编译gcc11.5 x64到aarch64交叉工具链
上面(--with-sysroot的值) + (--with-native-system-header-dir的值)是include查找目录编译能成功,但是libc.so脚本内容路径要改。上面configure会报错,应为configure太老,识别不了gcc11.5 需要修改configure文件检查cc版本的代码,case语句里面加上 |11.*)#--with-native-system-header-dir必须绝对路径默认/usr/include,--with-sysroot内部有效。
2025-03-18 16:18:32
255
原创 linux c国际化
一种locale表示一种文化的各种数据的表示或显示方式,一种locale分成多个部分,不同的部分由category表示,每一种category下面定义了很多关键字keywordlocale -a 查看所有支持的locale,locale 不带参查看当前locale的各个categorylocale -ck LC_TIME 输出LC_TIME这个category下面的所有keyword改变category的locale,在输出这个category下面的所有keyword,会发现locale不
2024-10-18 12:13:05
648
1
原创 c++11 abi 兼容性
ABI(Application Binary Interface)定义了程序二进制接口,包括函数调用约定、参数传递方式、数据结构布局、库函数名称修饰等。ABI 的一致性对于确保编译的二进制文件能够正确链接和运行至关重要。
2024-06-26 17:39:21
1373
原创 fatal error: bits/c++config.h: 没有那个文件或目录
/usr/include/c++/8/cstdlib:41:10: fatal error: bits/c++config.h: 没有那个文件或目录 #include
2024-06-17 18:29:55
3045
原创 mysql 8.0.31 rr隔离级别下的加锁规则总结
原则1:加锁的基本单位是next-key lock。希望你还记得,next-key lock是前开后闭区间。原则2:查找过程中访问到的对象才会加锁。优化1:索引上的等值查询,给唯一索引加锁的时候,next-key lock退化为行锁。优化2:索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key lock退化为间隙锁。一个bug:唯一索引上的范围查询会访问到不满足条件的第一个值为止。查看锁查performance_schema.data_locks表。
2023-03-25 18:46:34
368
原创 go sync.Map原理
无论是read还是dirty,本质上都是map[interface{}]*entry类型,这里的entry其实就是Map的value的容器。通过这种设计,规避了原生map无法并发安全delete的问题,同时在变更某个键所对应的值的时候,就也可以使用原子操作了。使用了两个原生的map作为存储介质,分别是read map(只读map)和dirty map(脏map)。entry的本质,是一层封装,可以表示具体值的指针,也可以表示key已删除的状态(即逻辑假删除)那sync.Map是怎么做的高性能的呢?
2023-03-17 18:02:56
197
转载 关于队头阻塞(Head-of-Line blocking),看这一篇就足够了
在这篇(很长,我知道)的文章中,我们一直在追踪队头阻塞。我们首先讨论了为什么 HTTP/1.1 会受到应用层队头阻塞的影响。这主要是因为 HTTP/1.1 没有识别单个资源块的方法。HTTP/2 使用帧来标记这些块并启用多路复用。这解决了 HTTP/1.1 的问题,但遗憾的是HTTP/2 仍然受到底层 TCP 的限制。由于 TCP 将 HTTP/2 数据抽象为一个单一的、有序的、但不透明的流,因此如果数据包在网络上丢失或严重延迟,它将遭受队头阻塞。
2022-09-21 16:52:32
943
原创 etcd 证书的坑
1etcdctl put key value --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt --cacert=/etc/kubernetes/pki/etcd/ca.crt如果你的证书是自签名ca颁发,这三个证书参数缺一不可,--cacert 不带报错authentication handshake failed: x509: certificate signed by unknown
2022-06-30 10:17:53
1221
原创 KMP算法精要
int strstr(string s,string p)在s中寻找p第一次出现的位置返回,找不到返回-1朴素字符串匹配步骤:确定s的匹配起点offset,第一次offset=0,以后offset=offset+1; 从s的offset开始,从p的位置0开始,逐位比较,一旦不匹配,回到步骤1KMP匹配KMP原理上根朴素字符串匹配没有区别,但是有两点优化:在确定s的匹配起点的时候,每次不匹配后不是每次后移动1位.移动多少位取决于已匹配部分公共前后缀长度与模式串p对比时,也不
2022-04-14 15:06:08
268
原创 推送局域网的公网地址到企业微信应用
前提条件1 已经注册了自己的企业微信 企业2 自己的企业微信添加了pushplus 推送应用func push() { //获取公网ip req, err := http.NewRequest(http.MethodGet, "http://ip.me/", nil) req.Header.Set("User-Agent", "curl/7.58.0") req.Header.Set("Accept", "*/*") cli := http.Client...
2021-09-01 11:12:53
773
原创 vim 中文乱码问题
vim 有一下三种编码1、fileencoding 在vim中e ++enc=cp936设置,cp936是中文gbk还是gb2312,vim按此格式载入文件,按此格式保存文件2、encoding LOCALE环境变量值获取,是vim buffer中的格式,是vim内部核心格式,载入时用iconv 从fileencoding到此格式encoding转换,保存时此格式encoding转成fi...
2019-05-23 16:27:00
906
原创 openssl 生成证书
// 生成顶级CA的公钥证书和私钥文件,有效期10年(RSA 1024bits,默认)openssl req -new -x509 -days 3650 -keyout CARoot1024.key -out CARoot1024.crt// 为顶级CA的私钥文件去除保护口令openssl rsa -in CARoot1024.key -out CARoot1024.key
2017-12-08 18:03:28
1232
原创 红黑树详解 原理 史上最强 精华
未经授权,不得私自转载,否则追究法律责任联系作者ntxbaby@163.com取得授权转载请注明作者和出处网上很多红黑树的讲解都没有分析清楚插入删除各种情况是怎么来的,他们大多把分析图画的很复杂,说到底还是理解不够深,其实这些情况都是极其简单的,我这里重点推导各种情况是怎么来的,不解释各种情况怎么调整,因为结构很简单调整很容易,且网上很多。红黑树的精髓是明白各种情况
2016-07-09 15:42:40
8422
2
翻译 go build命令
go build [-o output] [-i] [build flags] [packages]Build 编译由import path命名的包以及这些包所依赖的包,但不安装编译结果如果要编译的参数是.go文件列表,build把他们当作指定单个包的源文件列表当编译单个main包时,build生成的可执行文件的文件名是第一个源文件或者源码目录的名字,例如 go build
2015-12-13 15:44:06
4454
原创 iocp例子
//socket的简单封装CDSocket.h#include #define BUFFER_SIZE 1024#define OP_READ 1#define OP_WRITE 2#define OP_ACCEPT 3struct SockInit{ SockInit() { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2)
2014-11-02 10:41:30
694
原创 mysql用现有表的数据建表或填充表
这种方式注意INSERT INTO表名(列名1,列名2…)SELECT表名(列名1,列名2…)插入与选取的列数要相同,且类型兼容,选取的列分别依次按顺序填入要插入的表的列这种方法注意: CREATETABLE表名1(列1类型1,列2类型2…) AS SELECT列1,列2… FROM表名2取数据的表2选
2013-04-18 20:41:13
1930
原创 mysql 外键约束
上图中contact_interest和contact_seeking两张表的创建涉及到外键约束,其中一个表创建完成后,另一个的创建总是失败,害我摸索好久。这是我创建失败的sql:create tablecontact_interest(contact_id int not null,interest_id int not null,primary key(contact_
2013-04-18 20:33:41
1015
sed and awk 101 hacks.pdf (中文版带书签)
2023-06-25
pvtrace c/c++函数调用关系生成工具
2015-07-12
botan加密库
2012-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人