随笔分类 -  Linux[开发]

摘要:--disable-multilib 在64位系统上是否编译32位系统的内容,如果不编译,就禁用掉;如果编译,则需要安装32位系统相关的模块。 一般自己使用不会编译32位系统内容。 collect2: error: ld returned 1 exit status configure: error 阅读全文
posted @ 2023-12-28 15:41 秋来叶黄 阅读(156) 评论(0) 推荐(0) 编辑
摘要:开发中遇到一个问题,比如有一个类库A,被类库B引用,类库B和类库A都被程序C引用。类库A中有一个全局变量G,要求同一个进程中使用的是同一个全局变量G。 虽然看起来很简单,但是实际探究下来还有不少坑。 如果不是类库 如果A B都不是类库,而是直接引入源码编译,理论上比较方便解决。 示例一 pre.h 阅读全文
posted @ 2023-10-12 16:20 秋来叶黄 阅读(196) 评论(0) 推荐(0) 编辑
摘要:tcp/udp网络通信与socket实际上是两个概念,不过因为我们平常使用tcp/udp,不可避免的使用socket,所以认为两者是同一个事物。 我们现在所说的或者最常用到的都是BSD版本的socket。socket是对tcp/udp等网络协议的封装,提供上层接口,供我们使用,可以编写程序在网络间传 阅读全文
posted @ 2023-08-30 15:45 秋来叶黄 阅读(769) 评论(0) 推荐(0) 编辑
摘要:# 服务端源码 ``` #include #include #include #include #include #include #define BUFF_SIZE 1024 int main() { int sock = 0; int recvlen = 0; // 接收数据缓冲区 char b 阅读全文
posted @ 2023-08-30 11:21 秋来叶黄 阅读(88) 评论(0) 推荐(0) 编辑
摘要:# 原因 编译的时候指定的动态库,在运行时没有找到。因为编译和运行需要查找的目录是不通用的,需要在运行时指定查找动态库的目录。 # 解决方法 运行时,指定动态库搜索的路径 ``` export LD_LIBRARY_PATH=/xxx/lib:$LD_LIBRARY_PATH ``` 阅读全文
posted @ 2023-08-18 17:42 秋来叶黄 阅读(119) 评论(0) 推荐(0) 编辑
摘要:前言 https://www.cnblogs.com/studywithallofyou/p/17435497.html https://www.cnblogs.com/studywithallofyou/p/16695550.html 上面的文章提到了一些相关的知识,本篇单独针对CPU进行详细讲解 阅读全文
posted @ 2023-08-14 15:31 秋来叶黄 阅读(1073) 评论(2) 推荐(1) 编辑
摘要:# 编译产物 hyperscan编译完成后有如下文件 ``` ls -R .: include lib64 share ./include: hs ./include/hs: hs_common.h hs_compile.h hs.h hs_runtime.h ./lib64: libhs.a li 阅读全文
posted @ 2023-08-10 14:41 秋来叶黄 阅读(250) 评论(0) 推荐(0) 编辑
摘要:hyperscan是intel开发的用于高效正则匹配的工具。适用场景就是数据量大,性能要求高,匹配关键字领域。 hyperscan会把需要检测的关键字/正则表达式转换成对应的db数据,然后使用这些db数据进行匹配。所以如果数据更改了,需要重新创建。 理论上只能在intel的x86架构下才可以正常使用 阅读全文
posted @ 2023-08-07 13:45 秋来叶黄 阅读(404) 评论(0) 推荐(0) 编辑
摘要:原因 使用的gcc没有找到对应的glib库。 每个版本的glib都会有改变,所以使用的时候必须匹配。 大部分是因为自己编译升级了gcc,再用新的gcc编译程序时没有找到当时匹配的类库。 查找原因 报错提示很明确了,/lib64/libstdc++.so.6中没有找到GLIBCXX_3.4.26版本内 阅读全文
posted @ 2023-08-07 13:22 秋来叶黄 阅读(2839) 评论(0) 推荐(1) 编辑
摘要:udp的好处很明显,效率高,减少了建立连接的流程,减少了报文头的占比,也减少了维护连接的开销。缺点就是不稳定,会丢包。还有就是由于udp的高效,导致用于udp的一些应用开发,并发都比较大,更容易丢包。 # io复用 SO_REUSEADDR SO_REUSEPORT 创建listener用来监听数据 阅读全文
posted @ 2023-07-26 10:15 秋来叶黄 阅读(2637) 评论(0) 推荐(0) 编辑
摘要:项目一开始用的autotool一套,但是这套东西太重了,出现的比较久远,依赖的东西也比较多,学习成本高,编译效率也没有新出现的ninja等工具好,所以准备换掉。 可选项有cmake和ninja/meson,不过考虑到项目还没有大到使用这些工具,目前直接更换为makefile自己手动维护。 inclu 阅读全文
posted @ 2023-06-01 09:17 秋来叶黄 阅读(144) 评论(0) 推荐(0) 编辑
摘要:Linux为什么要有大页内存?为什么DPDK必须要设置大页内存?这都是由系统架构决定的。一开始为了解决一个问题,设计了对应的方案,随着事物的发展,无法满足新的需求,就在原来的基础上改进,慢慢的变成了现在的样子。 物理内存 Physical address 物理内存就是电脑的内存条,上面的每一个方块就 阅读全文
posted @ 2023-05-27 14:46 秋来叶黄 阅读(6251) 评论(2) 推荐(3) 编辑
摘要:`file a.out` 如果是debug版本,会显示with debug信息 `readelf -S a.out|grep debug` 如果是debug版本,会有相关信息 阅读全文
posted @ 2023-05-12 14:38 秋来叶黄 阅读(192) 评论(0) 推荐(0) 编辑
摘要:使用js fetch请求php的时候,出现了`The operation was abort` `SyntaxError: JSON.parse: unterminated string at line xxx of the JSON data`错误,nginx日志出现了`2022/04/09 18 阅读全文
posted @ 2023-05-03 15:53 秋来叶黄 阅读(995) 评论(0) 推荐(0) 编辑
摘要:由于python官方的源在国外,所以有时候安装经常断掉,速度也很慢,可以找国内的原进行安装,在运行pip安装命令的后面增加-i https://pypi.tuna.tsinghua.edu.cn/simple指定国内的源(比如这里的清华的源),就可以正常安装了。 python3 -m pip ins 阅读全文
posted @ 2023-03-30 10:20 秋来叶黄 阅读(82) 评论(0) 推荐(0) 编辑
摘要:发生这种问题就在于编译程序链接的库在运行时找不到,或者不存在,或者版本不正确等。使用ldd 你的应用程序|grep -i "libxxx"来查看程序中具体链接的库的位置和版本号,然后查看对应位置下是否有该共享库,如果没有,需要确定编译的时候指定的位置是否正确,如果仅仅是别名的问题,可以用ln创建一个 阅读全文
posted @ 2023-03-29 15:22 秋来叶黄 阅读(1017) 评论(0) 推荐(0) 编辑
摘要:问题 开发过程中,同一系统上,两个进程,使用了共享内存方式通信。为了追求性能,一个进程是生产者,一个进程是消费者;一个负责写,一个负责读,没有锁。写入完成后,再更新写的标识;读取数据并操作完成后,再更新读取标识,理论上没有问题,但是服务器上运行起来后,会读取到无意义的内容。 读取数据很大或者无效数据 阅读全文
posted @ 2023-03-27 16:39 秋来叶黄 阅读(295) 评论(0) 推荐(0) 编辑
摘要:linux同一机器上数据同步方法,把一块物理内存映射到两个不同的进程中,在进程中看到的内存地址是不一样的,因为进程中只能看到虚拟内存。并且共享内存相当于申请了一块内存,只不过两个进程访问的是同一个地方,并没有提供锁的机制,也就是会出现同时修改数据的问题,需要自己用信号量等同步机制确保不会出现脏读等竞 阅读全文
posted @ 2023-03-18 15:44 秋来叶黄 阅读(174) 评论(0) 推荐(0) 编辑
摘要:虽然是openeuler arm架构加载dpdk网卡驱动,但是linux加载驱动模块的流程和方法是一样的,遇到的问题也是相似的,所以借这个机会把相关的内容介绍一下 确认模块名称 驱动模块开发完成后是一个ko库,拷贝到系统指定目录,然后运行命令加载模块名。有时候想知道源码编译的模块名称是什么,可以在源 阅读全文
posted @ 2023-02-15 17:53 秋来叶黄 阅读(1645) 评论(0) 推荐(0) 编辑
摘要:在linux下有很多获取时间的函数,不过大部分都是需要调用内核,对于性能要求非常高的程序可能无法满足要求,需要特殊的方法替代常见的api。 # time localtime time函数,获取从1970到现在的秒数,精确度只有秒,通过localtime转换 ```c time_t testtm; t 阅读全文
posted @ 2022-12-05 16:12 秋来叶黄 阅读(976) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示