摘要: 接触cmake很多年了,但是从来没自己写一个完整的CMakeLists.txt构建过自己的动态库,因为工作以来动态库我都是用别人开源的,基本没有构建自己动态库的需求。今天需要将一个使用automake构建的老库替换为cmake来构建于是了解了一些相关细节,准备迁移过来。 极简例子 以C语言为例,一个 阅读全文
posted @ 2024-11-02 18:18 thammer 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Art-Net概述 Art-Net是一个基于TCP/IP协议族的以太网协议,通过UDP传输DMX512协议数据和RDM协议数据(Remote Device Management,远程设备管理),用于在节点(Node)和控制器(Controller,硬件控台,或者上位机软件,例如Madrix等)之间通 阅读全文
posted @ 2024-10-30 14:37 thammer 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 本文针对嵌入式设备 0.准备工作 安装并配置好交叉编译工具链 交叉编译linux内核,为编译内核模块提供编译环境 1.内核模块的入口和出口 linux内核提供了一对注册宏module_init(initfn)和module_exit(exitfn),它俩用于向内核注入内核模块的入口函数和出口函数。分 阅读全文
posted @ 2024-09-26 18:55 thammer 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 在C++ Primer Plus中,最开始介绍的是变量和引用变量。变量实际就包含了左值类型的变量和右值类型的变量。 引用变量 引用是C++引入的概念,引用变量是已定义的变量的别名(alias)。引用的创建示例如下: int a = 10; int &b = a; 通过compiler explore 阅读全文
posted @ 2024-08-27 13:40 thammer 阅读(5) 评论(0) 推荐(0) 编辑
摘要: Qt是通过官方的非核心源video来安装编译的。我需要用Qt的mqtt模块,官方仓库在mqtt。 makefile如下: # # Copyright (C) 2020 OpenWrt # Author: Mirko Vogt <mirko-openwrt@nanl.de> # This is fre 阅读全文
posted @ 2024-08-09 18:43 thammer 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 开发系统:ubuntu22.04 IDE:clion 构建工具:cmake Qt自定义控件之插件形式 插件形式是指将自定义控件按照一定的规则,生成动态库,放到Qt designer插件加载目录/usr/lib/x86_64-linux-gnu/qt5/plugins/designer下,Qt des 阅读全文
posted @ 2024-07-26 18:31 thammer 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 如果软件包是dpkg安装了,可以通过dpkg -L来查看已安装的软件包具体安装了哪些文件到哪些目录下。但是如果软件还未安装时,dpkg -L就无能为力了。这时就需要用apt-file命令来实现了。首先ubuntu默认不安装apt-file,先安装它 sudo apt install apt-file 阅读全文
posted @ 2024-07-26 15:54 thammer 阅读(156) 评论(1) 推荐(0) 编辑
摘要: 什么是函数模板 C++的函数模板提供了一种方法,让编译器根据你写的模板,来自动按需生成函数。这个模板就称之为函数模板。函数模板格式如下: template <typename AnyType> void MyFunctionTemplate(AnyType &param) { } 这里AnyType 阅读全文
posted @ 2024-06-30 10:36 thammer 阅读(10) 评论(0) 推荐(0) 编辑
摘要: decltype引入的原因之一是在函数模板中遇到如下情形: template <typename T1, typename T2> void foo(T1 a, T2 b) { ?type? tmp = a + b; } 此时,tmp类型该定义为哪种呢?我们知道基础数据类型相加时会自动进行类型提升, 阅读全文
posted @ 2024-06-28 15:17 thammer 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 定义了一个类A,里面有个模板函数。因为我习惯每个类的声明和实现分开用*.h,*.cpp写。所以类A的源码如下: A.h #ifndef A_H #define A_H class A { public: A(); template <typename T> void fuck(T a); }; #e 阅读全文
posted @ 2024-06-28 10:55 thammer 阅读(16) 评论(0) 推荐(0) 编辑