- 博客(12)
- 收藏
- 关注
原创 MSVC编译Boost库和使用
MSVC编译Boost库不管是出于什么目的,C++开发总是要用到boost库,介绍下使用MSCV编译器编译Boost库的方法环境MSVC 14.3(Visual Studio Community 2022)Boost 1.78MSVC版本号可以通过cl.exe所在路径得到,如图,我的是14.3步骤第一步:解压,目录结构如下我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将
2022-01-11 19:31:29
3339
原创 右值引用与移动语义
右值引用与移动语义右值引用的概念C++中所有的表达式和值,要么是左值,要么是右值。通俗的来说,左值指可以使用&取得其地址的“非临时对象”,而右值则是指不可用&取得其地址的“临时对象”。类比于左值引用,右值引用也仅可以使用右值赋值。我们用T &&来表示T类型的右值引用int &&rval1 = 1; // 正确,1是右值,可以赋值给右值引用int a = 1;int &&rval2 = a; // 错误,a是左值,不可
2021-08-30 20:05:43
211
原创 构造函数,基类构造函数,初始化列表,成员构造函数的调用顺序
先看一个例子#include <iostream>class itemA { public: itemA() { std::cout << "itemA void constructor" << std::endl; } itemA(int m) { std::cout << "itemA param constructor" << std::endl; }};class itemB { public
2021-08-27 11:40:47
900
原创 CMake编写规则
cmake预定义变量PROJECT_NAME #通过PROJECt指令定义的项目名称PROJECT_SOURCE_DIR #cmake命令后紧跟的目录, 一般是工程的根目录PROJECT_BINARY_DIR #执行cmake命令的目录, 通常是${PROJECT_SOURCE_DIR}/buildcmake语法#设置cmake版本cmake_minimum_required(VERSION 3.16)#设置工程名称project(hello_world) #添加头文件路径,
2020-11-06 13:38:32
680
原创 [ 基操勿六且坐观之]Git添加密钥,初始化本地仓库,修改远程仓库的地址,为项目建立.gitignore
添加密钥# 生成密钥 -t 指定加密方式 -C 为密钥注释Mars@company MINGW64 ~$ ssh-keygen.exe -t rsa -C "huahua"Generating public/private rsa key pair.Enter file in which to save the key (/c/Users/Mars/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passph
2020-11-06 10:38:51
268
原创 SSH密钥登录二三事
在日常使用中,除了密码登录更多的是使用密钥方式登录SSH。密钥对分成公钥和私钥,将公钥添加到需要登录的服务器用户的家目录下.ssh/authorized_keys文件中,在ssh登录时使用’-i’参数指定私钥 或 将私钥天骄到Xshell用户密钥中。使用密钥登录通常需要经过以下步骤: 客户端软件:Xshell 6 客户端终端:Linux company 4.4.0-18362-Microsoft 服务端版本:OpenSSH_7.9p1 Raspbian-10+deb10u2, OpenSSL 1.
2020-11-02 15:29:43
490
原创 [庖丁解牛]GCC编译过程详析
GCC编译过程GCC编译一个C/C++ 程序到可执行程序可分成以上4个步骤。例如,"gcc-o hello.exe hello.c"执行如下:1. 预处理: 预处理器(cpp)来展开包含的头文件(#include)和宏定义(#define)。# cpp hello.c > hello.i生成的文件"hello.i"包含了展开扩展后的源码。2. 编译: 编译器将预处理的源代码编译成特定程序集的汇编代码。# gcc -S hello.i选项 -S 指定生成汇编代码,而不是目标代码。生
2020-09-30 22:54:38
382
原创 [不求甚解够用就好]简单了解C/C++的内存布局
1.1 内存分布图1. Stack段:局部变量存放区域。2. heap段:用户动态分配内存区域。3. bss段:存放未初始化的全局或静态变量内存区域。(Block Started by Symbol)4. 数据段:通常指存放已初始化的全局变量的内存区域。(data segment)5. 代码段:通常指存放程序执行代码的一块内存区域。(code segment/text segment)C规定,未初始化变量的初值为0,这个清0的操作是由启动代码完成的,还有已初始化变量的初值的设置,也是由启动代
2020-09-28 15:09:30
172
原创 FormatMessage函数封装
*函数的返回值和错误码对判断函数的执行结果和失败原因有重要的价值。每个使用Windows API进行C++编程的老铁们都自己封装过FormatMessage这个函数,我用了快一年才想到自己去封装它以提高便携性。函数MyFormatMessage打印函数执行状态及对应的提示信息。语法DWORD MyFormatMessage( TCHAR *funcName, DWORD errCode = 0){ LPVOID lpMsgBuf; TCHAR lpDisplayBuf[1024];
2020-05-17 00:20:46
351
原创 C/C++打印一段连续内存篇的值
我想你有时候可能和我一样需要打印内存片的值,既然有现成的,就拿来学习一下,以下函数引用自xrdp,我进行了些许修改函数g_hexdump从指定地址开始打印指定长度的内存的ASCII码值。语法void hexdump( void *pSrc, int len){ unsigned char *line; int i; int thisline; int offset; line = (unsigned char *)pSrc; offset = 0; while (
2020-05-16 12:58:33
4874
原创 [Qt小白磨刀石]使用Visual Studio 2019+Qt 5.14.2创建GUI程序指南之开发环境配置篇
本指南由Qt官方指南翻译而来原文地址: https://doc.qt.io/qtvstools/qtvstools-getting-started.html1.开发环境的配置1.1 Visual studio 2019 的安装1.2 Qt 5.13.0 的安装1.3 Qt VS Tools 扩展的安装下载Qt插件方法1方法2配置Qt插件先写到这里原文地址: https://doc.qt.io/q...
2019-08-05 21:28:31
25934
4
原创 undefined reference to 'xxx'解决方法
undefined reference to “xxx”错误信息main文件中已经添加了以下报错的函数所在的头文件,也在其定义文件中做出了实现,编译时仍然报错。解决方法在这些函数的头文件中,将函数声明部分用__cplusplus包含起来。...
2018-12-17 20:52:24
4554
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人