![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++技术类
文章平均质量分 77
Bossking321
三天打鱼,两天晒网!
展开
-
编译报错:undefined reference to `std::__cxx11::basic_string 或者@GLIBCXX_3.4.21
编译环境,gcc从4.8.5版本升级到9.3.0版本。项目引用客户的SDK库(库是gcc7.2.0版本编译的)。用gcc7.2.0版本编译正常。原创 2024-05-23 16:24:13 · 704 阅读 · 0 评论 -
离线模式下载安装gcc-4.8.5
安装环境无外网的情况下,需要手动下载依赖包(有网,则不需要该步骤),一般是三个依赖包:mpc,gmp,mpfr,下载地址都是从gcc官网进入,需要下载的版本是gcc安装包解压后的文件(gcc-4.8.5/contrib/download_prerequisites)中,配置的版本(要大于等于该版本)按照依赖库的版本,将./contrib/download_prerequisites文件中信息更改,并且将(wget的下载操作注释掉)undefined reference to '_asan_init_v4'原创 2024-05-23 16:18:37 · 1605 阅读 · 0 评论 -
C++中发送HTTP请求的方式
使用C++编程发送HTTP请求通常需要使用第三方的HTTP库或框架。在C++中,有几个受欢迎的HTTP库可供选择,例如Curl、Boost.Beast和cpp-httplib。另外,也可以自己实现socket来发送http请求。原创 2024-04-02 11:12:48 · 1279 阅读 · 0 评论 -
线程的使用
get_id 获得当前线程idYield 将当前线程时间片让渡给其他线程sleep_until 当前线程休眠直到某个时间点sleep_for 当前线程休眠一段时间。原创 2024-03-07 14:43:31 · 1243 阅读 · 0 评论 -
线程间通信方式
一般而言,在一个应用程序(即进程)中,一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。线程间的通信涉及到4个问题:a.线程间如何传递信息;b.线程之间如何同步,以使一个线程的活动不会破坏另一个线程的活动,以保证计算结果的正确合理;c.当线程间具有依赖关系时,如何调度多个线程的处理顺序;原创 2024-03-01 16:05:22 · 1055 阅读 · 0 评论 -
Visual Studio离线版本下载安装
includeOptional/–includeRecommended:安装所选的工作负载组里面的推荐项/安装所选工作负载里面全部可选项。–add 工作负载:添加一个工作负载,工作负载id对应将在下面列出。若要下载多个工作负载组件,可以多加几个–add参数。将下载完成后的 D:\VS2023 目录打包, 拷贝至需要安装的设备上。下载完成后,出现很多安装包目录,和 vs_setup.exe 文件。需要将官网页面拉在最下方,点击较早的下载,选择老版本进行下载。下载速度比较慢,0.01%的增加。原创 2024-01-19 10:58:15 · 3198 阅读 · 2 评论 -
进程与线程介绍
进程:是操作系统分配和调度系统内存资源、CPU时间片等资源的基本单位,为正在运行的应用程序提供运行环境;线程:是操作系统/CPU能够进行运算调度的最小单位,它被包含在进程之中,进程包含一个或者多个线程。简单总结一下上面六种 Linux 内核提供的进程通信机制:1)首先,最简单的方式就是管道,管道的本质是存放在内存中的特殊的文件。也就是说,内核在内存中开辟了一个缓冲区,这个缓冲区与管道文件相关联,对管道文件的操作,被内核转换成对这块缓冲区的操作。原创 2024-01-02 16:38:16 · 621 阅读 · 0 评论 -
大端序小端序
大端模式:是指数据的高字节保存在内存的低地址中;小端模式:是指数据的高字节保存在内存的高地址中;原创 2023-12-27 15:03:28 · 542 阅读 · 0 评论 -
僵尸进程原理
父进程在接收到该信号后,应该调用 wait() 或 waitpid() 系统调用来获取子进程的退出状态,释放子进程占用的资源,并从系统进程表中移除子进程的相关信息。僵尸进程不占用实际的系统资源,但它们的存在可能会浪费一些系统进程表的空间,当大量的僵尸进程积累时,可能会影响系统的性能和稳定性。综上所述,避免僵尸进程的产生需要父进程负责及时处理子进程的退出状态,释放子进程的资源。或者有多个子进程死亡。使用 fork() 创建子进程后,在父进程中调用 wait() 或 waitpid() 等待子进程的退出。原创 2023-12-26 08:41:52 · 974 阅读 · 0 评论 -
信号知识总结
信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某种程序发生了什么事件,还可以给进程传递数据。信号的概念,信号的来源,,信号的机制,查看singal信号四要素,进程对信号的响应,信号处理函数与相关结构信号安装的各个函数,发送信号函数,信号集及信号集操作,阻塞信号相关函数,遇到的问题原创 2023-12-25 10:20:29 · 1578 阅读 · 0 评论 -
异步非阻塞模式,connect返回-1,errno为115
两个错误:1,connect返回出现-1 2,FD_ISSET(sock, &rset) 检测集合异常此问题在windows环境下是正常的,但是在linux环境下是异常的,这个问题是一个历史的问题。linux环境下出现这种写法比较早,当时只判定写的文件集中的文件描述符,但是后来windows下也发展出现了这种写法,但是windows下读写都判断,读默认是被修改过的。实际上读的文件描述符在linux和windows都未改动了,只是windows默认让它改动了。原创 2023-12-21 14:51:05 · 2133 阅读 · 0 评论 -
应用程序mock打桩1
网络编程思想,针对发送数据层进行mock打桩,可以使用gtest测试应用,运用了仿函数,STL map 函数指针,多参数合并为一个数据原创 2023-12-12 14:30:11 · 898 阅读 · 0 评论 -
cmake安装与基础语法学习1 --之安装简介
cmake安装与基础语法学习;Cmake并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile),然后再以一般的建构方式使用。简单的说就是CMake基于Makefile做了二次开发。CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件。有些项目有最低版本要求,如果版本过低,可能项目会编译不了,可以升级CMake。A>卸载已经安装的旧版的CMake[非必需]。二、安装 cmake。原创 2023-12-15 15:49:42 · 442 阅读 · 0 评论 -
应用程序mock打桩2
应用程序mock打桩操作。该篇文章是对数据转换层,和数据发送层进行打桩。数据塞入线程队列的统一接入入口。ThreadProcess_T_CalSpi_Mock是消息处理进程类模板,消息数据以同步的方式添加后,以异步的方式消费;此处将消息发送到队列进行打桩,直接回调。该文章紧接上一篇文件介绍,应用程序mock打桩操作。该篇文章是对数据转换层,和数据发送层进行打桩。RecvProcessNorm 统一数据类型转,调用消息处理线程(在消息转换之处进行打桩)原创 2023-12-14 15:46:36 · 515 阅读 · 0 评论