在GCC环境中开发C和C++混合项目
代码 假设我们有一个用 C++实现的“b 模块”,和 C 语言实现的“a 模块”。我们希望用 a 模块调用 b 模块,也就是 C 调用 C++。 // b.cpp #include "b.h" #include <iostream> void testfunc(int arg){ std::cout << "testfunc:"<< arg ...
代码 假设我们有一个用 C++实现的“b 模块”,和 C 语言实现的“a 模块”。我们希望用 a 模块调用 b 模块,也就是 C 调用 C++。 // b.cpp #include "b.h" #include <iostream> void testfunc(int arg){ std::cout << "testfunc:"<< arg ...
问题 deepin 的官方仓库更新较慢,最新 deepin V20 版本的默认 GCC 居然还是 GCC8,很多特性都不支持。 下面介绍下如何在不使用容器的情况下安装使用 GCC12,同时不影响系统自带的 GCC。 安装 debian 的 rootfs 安装 debian 的 rootfs 是为了使用 debian 的仓库下载 GCC。 前往清华大学镜像站下载 debian ...
前言 阅读本文需要 QP 框架基础,建议先阅读《UML 状态图的实用 C/C++设计》(QP 状态机)学习笔记 介绍 QP/C 框架在其源码中提供了一个“飞行和射击”游戏示例,可以运行在 Windows 和 ARM 裸机双平台 构建 资源文件 该示例为 Windows 编写了一套模拟 bsp – qwin_gui,利用了 Windows SDK 中的绘图功能实现了虚拟的 LCD、...
clang-format 介绍 官网:https://clang.llvm.org/docs/ClangFormat.html Clang-Format 是一个由 LLVM 项目提供的开源工具,用于对 C、C++、Objective-C、Java(非原生代码)和 JavaScript 进行源代码格式化。 Clang-Format 使用 Clang 编译器的解析引擎来理解代码结构,它的目...
术语中英表 英文 中文 expression 表达式 aggregate 集合 compound literal 复合字面表达式 persistent side effect...
准备工具 virtualbox ubuntu server 2204 镜像 安装镜像 新建虚拟机,选中安装镜像,如果想在安装过程手动配置(如开启 SSH server 功能),勾选跳过自动安装: 点击下一步,配置 CPU、内存、硬盘等信息,一般默认即可,配置完如下: 之后可以直接运行虚拟机或者等配置完网卡等外设再开启。 配置网卡 桥接网卡 桥接网卡用于让虚...
设备类型 在 Linux 以及所有 Unix 系统中,设备被分为以下三种类型: 块设备 字符设备 网络设备 前两个设备在设备的分类中有提到 网络设备最常见的类型有时也以以太网设备(ethernet devices)来称呼,它提供了对网络(例如 Internet)的访问,这是通过一个物理适配器(如你的笔记本电脑的 802.11 卡)和一种特定的协议(如 IP 协议)进行...
体系结构 与体系结构相关的代码都存放在arch/architecture/目录中,architecture 是 Linux 支持的体系结构的简称。比如说,Intel x86 体系结构对应的简称是 x86 字长和数据类型 能够由机器一次完成处理的数据称为字。 处理器通用寄存器(general-purposeregisters,GPR)的大小和它的字长是相同的。一般来说,对于一个体系结构...
几个推荐的网站或邮件列表: https://vger.kernel.org/majordomo-info.html,内核邮件列表(Linux Kernel Mailing List,lkml)是对内核进行发布、讨论的主战场。在做任何实际的动作之前,新特性会在此处被讨论,新代码的大部分也会在此处张贴。 https://lkml.org/,对 lkml 的归档(非官方),官方的应该是...
有关并发和同步的基本知识,可见本文以及后续几篇文章,这里不再赘述。 造成并发执行的原因 真并发和伪并发: 真并发:在多处理器的情况下,多个进程(线程)能够在多个 CPU 核心上同时执行。 伪并发:即使只有一个处理器,用户程序也会被调度程序抢占和重新调度,我们可以认为所有就绪的进程都在同时执行,这就是抢占式内核的特性 虽然真并发和伪并发的原因和含义不同,但它们都同样会造成竞...