随笔分类 - c++
摘要:《C++ Boost库》 1. Preface cxmsc 2. Boost库编译 解压boost源码压缩目录 Windows平台下,打开cmd,运行脚本bootstrap.bat脚本 生成b2.exe文件 boost需要通b2.exe来自动编译源码;在编译之前,需要指定一些列参数: 首先可通过--
阅读全文
摘要:《log4cplus日志库》 1. Preface log4cplus是一款开源的c++日志库,具有线程安全,灵活,以及多粒度控制的特点;log4cplus可以将日志按照优先级进行划分,使其可以面向程序的调试,运行,测试,后期维护等软件全生命周期;可以通过配置,选择将日志输出到屏幕,文件,NT ev
阅读全文
摘要:《C/C++参数解析》 1. getopt库的使用 getopt用于解析程序命令行输入的参数,可解析短参数和长参数;解析短参数使用getopt()函数,解析长参数可使用getopt_long(); 1.1 getopt()解析短参数 getopt()函数用来解析短参数,例如-a或者-b 100这样的
阅读全文
摘要:CMake实战 1. Preface 通过CMake来实际构建一个项目,掌握cmake的使用流程;在之前的博客!《CMake学习记录》中,介绍了Cmake相关的基础知识; 2. 需要注意的问题 程序版本信息设置,包括编译时间设置 指定编译时的编译器 编译选项设置 3. 一个简单的Hello worl
阅读全文
摘要:《C++ 11 多线程编程》 1. 基础 进程:一个进程代表计算机中实际运行的一个程序,在现代计算机操作系统的保护模式下,每个进程都具有自己独立的进程地址空间和上下文堆栈;进程并不负责执行进程代码,只是为程序提供一个大环境容器,进程中的实际执行体是线程(Thread),因此在一个进程中至少得有一个线
阅读全文
摘要:《网络通信协议》 1. 背景 在计算机体系中,存在着很多的网络通信协议;通信协议的实际上就是一段数据,通信双方按照提前约定的规则去进行编码解码,达到传输数据的目的;例如,TCP/IP是目前计算机设备最常用的通信协议;TCP/IP实际上是一个协议族,包含一组协议,其中靠近应用层且最常用的协议是TCP和
阅读全文
摘要:valgrind使用 1. Preface valgrind是一套Linux下开源的程序仿真调试和分析工具的集合;集合中的每个工具负责执行某种类型的仿真,调试,或者分析任务;它的主要结构包括一个内核(软件模拟CPU环境)以及一系列的小工具。 valgrind包含的工具主要如下: Memcheck 主
阅读全文
摘要:1. 什么是并发和多线程 2. 为什么要使用并发和多线程 2011年发布的C++11开始支持多线程程序。并在库中为编写多线程应用程序提供组件,这使得在不依赖平台相关扩展编写多线程程序成为可能。 首先介绍,什么是并发? 从简单和基本的层面讲,并发是指两个或者更多独立的活动同时发生,那么计算机系统中的并
阅读全文