09 2024 档案
摘要:前几天在B站上看到一个线程池的例子,用到了很多不熟的语法,于是把它记录下来,方便后续慢慢研究。 在windows下用vs2017编译测试过,C++14和C++17都能跑通。 直接上代码: ThreadPool.hpp: #ifndef __MY_THREAD_POOL_INCLUDE__ #defi
阅读全文
摘要:C++标准库对条件变量有两套实现:std::condition_variable 和 std::condition_variable_any 。 这两个实现都包含在 <condition_variable> 头文件的声明中。 两者都需要与一个互斥量一起才能工作(互斥量是为了同步); 前者仅限于与 s
阅读全文
摘要:背景: share_ptr已经很好用了,但是有一点share_ptr智能指针还是有内存泄露的情况,当两个对象相互使用一个shared_ptr成员变量指向对方,会造成循环引用,使引用计数失效,从而导致内存泄漏。 weak_ptr 是一种不控制对象生命周期的智能指针, 它指向一个 shared_ptr
阅读全文
摘要:记录一些C++14的一些特性: 参考:https://github.com/0voice/cpp_new_features/blob/main/cpp_14/001_initializer_list_crbegin.cpp 函数返回值类型推导: C++14对函数返回类型推导规则做了优化: #incl
阅读全文
摘要:记录一下使用过的C++11的一些特性,大致分为三部分:并发相关,智能指针相关,chrono。 并发相关: std::thread相关: #include <iostream> #include <thread> using namespace std; int main() { auto func
阅读全文
摘要:参考:Ubuntu系统中本地编译并安装grpc的C++版本及测试 - 知乎 (zhihu.com) 安装依赖: # 这些可能都已经安装了 sudo apt-get install pkg-config autoconf automake libtool make g++ unzip # 下面的可能没
阅读全文
摘要:记录一下这个工具,感觉还挺好用的。参考: 如何读懂火焰图? - 阮一峰的网络日志 (ruanyifeng.com) perf的基本使用方法-菜鸟笔记 (coonote.com) 使用 Perf 和火焰图分析 CPU 性能 | Senlin's Blog (senlinzhan.github.io)
阅读全文
摘要:背景: 由于项目需要,把所有的proto文件放在了统一的文件夹中,为了方便更新以及加快编译速度,要把这个proto自动转成.cc .pb.h文件,再编译成so。 为此,写了个cmakelist.txt。 主要功能: 1)自动遍历指定目录下所有proto文件,调用ptotoc生成.cc文件,如下图:c
阅读全文
摘要:完整的源代码包: # 安装依赖 sudo apt-get install git cmake doxygen graphviz build-essential zlib1g-dev sudo apt-get install libhdf5-dev libprotobuf-dev libprotoc-
阅读全文
摘要:下载: git clone https://github.com/eclipse-ecal/ecal.git cd ecal git checkout v5.12.0 git submodule init # 这一步耗时会有点长,有些可能需要多次尝试才成功 # 若一直不成功,可以跳过,等cmake报
阅读全文
摘要:背景: ubuntu下,有时会打不开串口,需要加sudo。为了实现普通用户也能打开串口,使用了下面的方法三。 1. 查看现有权限。例: ls -l /dev/ttyS0 实例输出: crw-rw 1 root dialout 4, 64 9月 11 14:58 /dev/ttyS0 表示原生串口tt
阅读全文
摘要:之前在局域网内部署了一个gitlab服务器,由于断电出问题了,需要重装。记录一下: 注意: 1)还是需要定期备份。 2)重装时要选择和之前相同的版本。如果版本不同,很可能备份文件无法重新恢复。 背景: 断电后,gitlab再启动,一直报502的错。但是能备份,其他都是正常的。 于是先备份一下。 问题
阅读全文
摘要:背景: 之前的项目大致可以分为两层,逻辑层和设备层,运行在同一个主机上。最近在着手搭建一个仿真平台,在另外一台主机上部署机器人机器相关硬件设备,比如陀螺仪,轮机,雷达等。 由于两台主机的时间戳不同步问题,导致定位系统有问题,为此需要实现两个主机的时间同步。 具体分两步:1)测量两主机的网络延迟(ro
阅读全文
摘要:2024.3.8 一种“传新”版本的屏幕共享软件。 需要在Ubuntu20.04上打开一下配置,以及设置一些参数。然后在windows下通过VNC Viewer就能连接上去了。 如何在ubuntu上配置: 参考:https://blog.csdn.net/qq_25985027/article/de
阅读全文