Linux使用Clang链接libc++运行时

在Linux上,一般情况下都会使用GCC和libstdc++,因为他们之间有特殊优化,如果使用Clang编译,性能不会比GCC高,因为默认情况下Clang编译出来的程序也是链接的libstdc++,而Clang的正统在libc++上 运行环境 docker run -it --rm ubuntu b


VSCode CMake Ninja环境搭建

VSCode CMake Ninja环境搭建 VSCode 插件安装 CMake 安装 Download CMake 将cmake bin目录设置在系统环境变量PATH中 Ninja


Visual Studio下载地址

VS下载链接地址 https://aka.ms/vs/15/release/vs_community.exe 15指2017,可以替换为16(2019),17(2022) community可以替换为Enterprise和Professional VS2017企业版 https://aka.ms/v


跨平台/架构编译

使用docker环境编译 使用alpine镜像,alpine系统包含各个系统架构的镜像,alpine使用的是musl libc alpine - Official Image | Docker Hub docker run可以通过--platform=linux/amd64指定镜像的架构(前提是镜像


Windows关闭、唤醒屏幕

// 打开显示器 SendMessage(FindWindow(0, 0), WM_SYSCOMMAND, SC_MONITORPOWER, -1); mouse_event(MOUSEEVENTF_MOVE, 0, 1, 0,


gcc docker 编译环境

使用docker gcc编译,静态链接运行时 编写Dockerfile FROM gcc:13 RUN apt update \ && apt install gcc clang make ninja-build cmake gdb git -y \ && apt clean 使用VSCod


Windows通过代码调用wmi

Windows通过代码调用wmi c++ - How to get system serial number? - Stack Overflow Example: Getting WMI Data from the Local Computer - Win32 apps | Microsoft Le


lambda bind_front

C++14 lambda 实现 bind_front 用lambda C++14实现bind_front,这段代码还有没有优化空间? - 知乎 (zhihu.com) template<typename Func, typename Tuple, std::size_t ... I, typenam


boost编译

Boost编译 下载源码 Boost C++ Libraries 安装Python环境 Download Python | Python.org


C++实现Go中的defer

C++实现Go中的defer 原理:利用栈和析构 技巧: 利用__LINE__ 宏定义栈变量 利用C++变量名的就近原则,区分是否使用 init_defer_func_stack() 利用重载函数匹配规则,根据是否使用init_defer_func_stack,获取临时栈变量或者init_defer


字节序判断和转换

字节序判断和转换 #if _WIN32 #include <cstdlib> # define BYTE_SWAP_2(x) _byteswap_ushort(x) # define BYTE_SWAP_4(x) _byteswap_ulong(x)


CMake编译Android iOS库

CMake编译Android/iOS库 CMakeLists.txt project(RayStreamNet) cmake_minimum_required(VERSION 3.1) add_compile_options(-fvisibility=hidden -std=c++14 -fPIC


查询Windows下的dll exe所依赖的文件

查询Windows下的dll/exe所依赖的文件 dumpbin -dependents your-file 如果有Image has the following delay load dependencies,列出的为运行时动态加载的dll。 如果有Image has the following


程序设置开机自启

程序设置开机自启 Windows // "Key" 是自启名称 // "Value" 程序路径 // 添加注册表 reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v "Key" /d "Val


MacOS 获取系统语言

MacOS 获取系统语言 std::string GetLocaleLanguage() { // defaults read .GlobalPreferences AppleLanguages | tr -d ["()\\""][:space:] std::string lpath =


Go生成库给C C++

Go生成库给C/C++ Windows main.go package main /* #include <stdlib.h> */ import "C" import ( "net" "unsafe" ) //export GetMacAddr


spdlog 日志库配置

spdlog 日志库配置 https://github.com/gabime/spdlog log.h #pragma once #include <spdlog/spdlog.h> #include