Jian's Note

It's better to burn out than fade away!

CMake 笔记 | [7] 设置语言标准(一)

一、C ++ 标准历史 1998 年,C++ 标准委员会发布了第一版 C++ 标准,并将其命名为 C++ 98 标准 2011 年,新的 C++ 11 标准诞生,用于取代 C++ 98 标准。此标准还有一个别名,为C++ 0x 2014 年,C++ 14 标准发布,该标准库对 C++ 11 标准库做了更优的修改和更新 2017 年底,C++ 17 标准正式颁布 二、C++ 11版本特性介绍 在 C++ 11 标准之前,C++ 标准委员会

CMake 笔记 | [6] 设置编译选项

一、编译器选项相关概念 编译器选项是指在编译程序时,可以通过设置不同的选项来控制编译器的行为和生成的代码的特性。常见的编译器选项包括优化选项、调试选项、警告选项、链接选项等。 优化选项可以控制编译器对代码进行优化的程度,以提高程序的性能。 调试选项可以生成调试信息,以便在程序出现问题时进行调试。 警告选项可

CMake 笔记 | [5] 构建类型(Debug、Release以及其他)

一、基本概念构建类型 CMake可以识别的构建类型是: Debug:用于在没有优化的情况下,使用带有调试符号构建库或者可执行文件 Release: 用于构建的优化的库或者可执行文件,不包含调试符号 RelWithDebInfo:用于构建较少的优化库或者可执行文件,包含调试符号 MinSizeRel:用于不增加目标代码大小的优

CMake 笔记 | [3] 静态库和动态的补充

一、导言 对CMake在不同平台上构建动态库和静态库做进一步的探索,即如何利用一个比较统一的模板在不同的平台构建静态库和动态库,以及对add_library命令的其他参数做进一步的探索。 二、库模板 2.1 项目结构 1 2 3 4 5 6 7 8 9 10 11 12 . ├── cmake │ └── message_config.cmake.in ├── message-module │ ├── include │ │ ├── message_export_lib.h │ │ └── message.h │ ├── src

CMake 笔记 | [2] 多目录多文件的CMake构建方式

一、项目结构 1 2 3 4 5 6 7 . ├── include │ └── message.h ├── src │ └── message.cpp ├── hello_world.cpp └── CMakeLists.txt 项目结构是为了让我们开发人员对项目更加清晰,使代码结构更加清晰(模块化)。一般我们的项目比较简单时,可以构建为如上的项目结构。但是在构建大型项目时,项目结构会更加复杂,具体请参考下节内容。 这里我们构建了include目录

CMake 笔记 | [1] 单个源文件编译为可执行文件

一、项目结构 1 2 3 4 5 6 .. ├── CMakeLists.txt └── hello_world.cpp 0 directories, 2 files 本项目只包含了一个源文件hello_world.cpp和一个CMake文件。 源码地址: https://github.com/jianye0428/CMake_Learning_Notes/tree/main/Note_1/hello-world 注意 注意: CMake文件的名字只能是CMakeLists.txt,当然如果使用include命令(后续会讲到),可以以任何名字进行命名,只要以.cmake结尾即可

Argoverse 2 数据集

一、简介 Argoverse数据集是由Argo AI、卡内基梅隆大学、佐治亚理工学院发布的用于支持自动驾驶汽车3D Tracking和Motion Forecasting研究的数据集。 数据集包括: 带标注的传感器数据集: 含1000个多模态数据序列,包括来自七个环视摄像机和两个双目摄像机的高分辨率图像,以及激光

长短期记忆网络 -- LSTM

一、传统的BP网络和CNN网络 BP网络和CNN网络没有时间维,和传统的机器学习算法理解起来相差无几,CNN在处理彩色图像的3通道时,也可以理解为叠加多层,图形的三维矩阵当做空间的切片即可理解,写代码的时候照着图形一层层叠加即可。如下图是一个普通的BP网络和CNN网络。 BP Network CNN Network 图中的隐含层、卷积层、池

C++ Concurrency in Action [8] | CH08 Designing Concurrent Code

线程间的工作划分 为了提高线程利用率并最小化开销,必须决定要使用的线程数量,并为每个线程合理分配任务 开始处理之前的线程间数据划分 简单算法最容易并行化,比如要并行化 std::for_each,把元素划分到不同的线程上执行即可。如何划分才能获取最优性能,取决于数据结构的细节,这里用一个最简单的划分为例,每
0%