
Linux
文章平均质量分 91
Huoon
这个作者很懒,什么都没留下…
展开
-
C++实现毫秒级精度定时器
定时器的实现一般需要借助系统提供的超时相关接口,比如select、 条件变量、或者sleep, usleep等,sleep,usleep提供的睡眠功能太有限,无法中途唤醒,这就导致他们其实不适合做定时器中的定时方法。而select和条件变量都可以设置定时时长,而且在中途可以唤醒,精度也很高,因此,可以采用select或条件变量作为定时方法,本文讨论使用条件变量如何实现定时任务。条件变量可以设置超时时间,如果条件变量在没有接收到来自其他线程的条件通知时,将一直阻塞,直到超时。通过这个特性可以按照定时器需要等原创 2022-05-03 00:14:58 · 7175 阅读 · 1 评论 -
CMake 编译选项设置
在CMakeLists.txt中可以通过修改CMake内置的环境变量来改变C或C++的编译选项.编译选项相关的CMake 变量如下:CMAKE_C_FLAGS = CMAKE_C_FLAGS_DEBUG = -gCMAKE_C_FLAGS_MINSIZEREL = -Os -DNDEBUGCMAKE_C_FLAGS_RELEASE = -O3 -DNDEBUGCMAKE_C_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUGCMAKE_CXX_FLAGS = CM原创 2020-09-10 18:47:05 · 27093 阅读 · 0 评论 -
Linux C/C++程序崩溃bug调试方法
C,C++程序最常见的崩溃问题就是内存问题,内存越界,访问空指针,野指针等都会造成程序崩溃。Linux系统中当程序运行过程中出现非法操作,系统会先发送对应的错误信号,每种错误信号都有默认的处理方式,比如,当我们给一个空指针赋值的时候,系统会检测到这个内存错误,然后向进程发送SIGSEGV信号,该信号默认的处理方式是退出进程,这种情况下,只能看到进程挂掉,但无法定位错误。当出现这种问题的时候一般往往很难查找原因,下面介绍两种方式定位bug。方法一:捕获系统信号Linux操作系统提供了一组接口可以修改信号对原创 2020-09-10 18:45:32 · 6203 阅读 · 0 评论 -
Visual Studio 2019 创建CMake Linux项目
之前我有一篇文章讲的是使用Visual Studio 2017 创建Linux C++ 项目(使用VS2017调试Linux C++代码),使用IDE的好处就是方便编码和调试。工作中也一直以这种方式开发Linux平台的项目,使用了大概两年多,总体上可以满足开发需求,但是还存在一些bug,或者说令人不太满意的地方。问题1:本地文件和远程同步问题项目中如果有脚本或者配置等文本文件,由于这些文件不参...原创 2020-04-25 00:03:48 · 3184 阅读 · 0 评论 -
使用Docker+Visual Studio 2019搭建Linux C++开发环境
使用Docker+Visual Studio 2019搭建Linux C++开发环境从Visual Studio 2017开始,Visual Studio就已经支持跨平台Linux项目的开发。使用它作为开发工具可以很方便的进行开发,调试。它的跨平台开发原理是这样的,通过建立一个Linux工程,这个工程在编译时,拷贝本地代码到远程Linux环境,然后在Linux环境下编译,实际上是一个远程编译的...原创 2019-08-17 22:43:02 · 5123 阅读 · 0 评论