GCC – -fpic、-fPIC、-fpie、-fPIE编译选项的作用和区别
本文主要对gcc和cmake经常使用的编译选项-fpic、-fPIC、-fpie、-fPIE的作用和区别进行总结。 1 -fpic 官方文档说明 Generate position-independent code (PIC) suitable for use in a shared library…
- C++
- 2023-09-06
CMake – 指定gcc、g++编译器
1 CMake指定gcc/g++编译器 Centos7默认的gcc和g++版本是4.8.5,这个版本对C++11的特性支持的不是很完全,所以一般都建议使用高版本的gcc和g++。 假设: 高版本的gcc的路径为:/opt/rh/devtoolset-10/root/bin/gcc 高版本的g++的路…
- C++
- 2023-09-02
C++ – GCC版本与C++标准之间的对应关系
1 GCC版本与C++标准的对应关系 C++到今年为止已经有了C++98、C++11、C++14、C++17、C++20,而C++23也于今年发布,而C++26也预计在2026年发布。目前在项目中一般是C++11作为标准,当然也有时会用到C++14和C++17的一些特性。 GCC是支持多种编程语言的…
- C++
- 2023-09-01
C++ – Windows系统使用C++切换音频默认输出设备
1 Windows系统上切换默认音频输出设备 如果电脑上插了多个音频输出设备(比如同时插了音响和耳机),在Windows系统中一般通过在声音设备页面选择输出设备,通过这种方式切换音频的默认输出设备。 也可以在高级声音选项 - 应用音量和设备首选项单独为某个软件设置音频输入设备和音频输出设备。 2 使…
- C++
- 2023-08-30
C++ – 日志库easylogging++初始化时不生成默认日志文件mylog.txt
1 easylogging++日志会默认生成日志文件mylog.txt 在使用C++日志库easylogging++的过程中,既使我们在日志配置中已经进行了日志文件路径和文件名格式的指定,但是只要通过以下类似代码初始化了easylogging++, #include "easylogging++.h…
- C++
- 2023-08-28
C++ – 单例模式
转载自:Zhongtian‘s Technical Notes,如侵联删。 单例模式是使用最广泛的设计模式之一,其目的是保证一个类仅有一个实例,并提供一个访问它的全局访问点。 1 Eager Singleton class Singleton { public: static Singleton&a…
- C++
- 2023-08-25
C++ – std::vector初始化方式总结
本文将简单总结下std::vector初始化的几种方式。 1 std::vector初始化 1.1 使用值初始化std::vector #include<iostream> #include <vector> int main() { std::vector<int&g…
- C++
- 2023-08-21
C++ – websocket++不依赖boost,基于独立Asio编译方法
1 websocket++ WebSocket++ 是一个跨平台开源(BSD 许可证)仅标头 C++ 库,它实现RFC6455(WebSocket 协议)和RFC7692(WebSocket 压缩扩展),可基于WebSocket++编写Websocket客户端和服务器,其中Websocket++网络…
- C++
- 2023-08-18
Duilib – List控件添加listitem之后自动滚动到底部
1 Duilib中List控件添加listitem自动滚动到List控件底部 1.1 使用EndDown无法正常滚动到List控件底部的问题 假设我们界面中有一个list控件,界面xml如下 <List name="Result_List" text="测试" height="450" vsc…
- Duilib
- 2023-08-18
C++ – const_cast, static_cast, dynamic_cast, reinterpret_cast四种cast转换的区别和使用
在C++中有四种形式的cast:const_cast、static_cast、dynamic_cast、reinterpret_cast。本篇文章将介绍什么时候和怎么样去使用这四种不同的cast。 1 const_cast const_cast用于将一个const常量转换为变量,或者将一个变量转为c…
- C++
- 2023-08-17
C++ – 令人迷惑的const关键字
最开始学习或者用C++编程的时候,看见const就犯难,真的令人头痛,特别是const和指针放在一起的时候,这篇文章我们就详细整理下有关const的知识点。 1 const 在C++中,const关键字一般用来修饰变量、引用、指针等,使用const关键字修饰后,他们就变成了常量,只能读不能写。但是c…
- C++
- 2023-08-15
C++ – String literal,字符串关键字R,L,u8,u,U的作用
1 C++中的String literal C++11推出了String literal(字符串字面量),字符串字面量是指由单引号,或双引号引起来的字符串。 C++11中包含了以下几种String literal, "" : Ordinary string literal L"" : Wide st…
- C++
- 2023-07-20