nlohmann/json 是一个用于解析 JSON 的开源 C++库,口碑一流,无需额外安装其他第三方库,还支持单个头文件模式,使用起来非常方便直观。

阅读全文 »

C++ 支持各种字符串和字符类型,并提供了表达每种类型字面值的方法。在源代码中,我们使用字符集来表示字符或字符串。同时我们还可以使用通用字符名和转义字符来通过基本的源字符集表示任何字符串。而原始字符串能够避免对转义字符进行转义,并可用于表示所有类型的字符串。

阅读全文 »

安装 port 历史版本

如何在 Vcpkg 命令行模式下安装 port 时如何指定版本。

截至 2023-05-22:vcpkg 仅支持在 manifest 模式下指定 port 的版本,在命令行模式下不支持指定 port 版本。

使用 Git 命令查看当前 Vcpkg 仓库的 baseline:

1
git rev-parse HEAD

创建vcpkg_json目录,并在该目录下创建vcpkg.json文件(以 openssl 为例):

1
2
3
4
5
6
7
8
9
10
11
{
"name": "cc",
"version": "1.0.1",
"builtin-baseline": "7b30311f0a79d395bf2d933d82fec1853c6a4e77",
"dependencies": [
{"name": "openssl"}
],
"overrides": [
{ "name": "openssl", "version-string": "1.1.1n#1" }
]
}

使用如下命令安装:

1
vcpkg install --triplet "x64-windows" "--x-manifest-root=D:\vcpkg_json\\" "--x-install-root=D:CODE\vcpkg\installed\\"

访问 Github 私有仓库

Vcpkg 默认只支持从公共代码仓库进行下载编译,本文介绍如何使用 Vcpkg 从私有仓库进行源码下载/编译/安装。

在 Github 中添加 TOKEN

添加 Windows 环境变量:

VCPKG_KEEP_ENV_VARS值为GITHUB_TOKEN

GITHUB_TOKEN值为第一步生成的 TOKEN

修改 portfile.cmake

vcpkg\ports目录下,找到对应库的 portfile.cmake 文件,加入AUTHORIZATION_TOKEN参数。

1
2
3
4
5
6
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO xxx/xxx
HEAD_REF main
AUTHORIZATION_TOKEN $ENV{GITHUB_TOKEN}
)

使用仓库的最新代码

在向 Vcpkg 提交 port 时,我们会不断地对仓库进行修改和调试。如果采用REF方式指定源码版本,则需要不断地修改 REF 和 SHA512,调试起来比较繁琐,我们可以采用HEAD_REF的方式来简化调试流程。

portfile.cmake文件中指定HEAD_REF,如:

1
2
3
4
5
6
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO winsoft666/ashe
HEAD_REF main
AUTHORIZATION_TOKEN $ENV{GITHUB_TOKEN}
)

安装时指定--head参数:

1
vcpkg install ashe:x64-windows-static --head

依次执行如下命令:

1
yum install -y wget
1
2
3
4
5
# 备份并下载阿里云的base和epel源
mv -f /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1
2
3
yum clean all
yum makecache
yum -y update

如何查找 Vcpkg 安装的依赖库

在 CMake 工具中指定跨平台工具链,如图:

指定 Toolchain 文件D:/sourcecode/vcpkg/scripts/buildsystems/vcpkg.cmake

阅读全文 »

淘宝镜像源的域名已由之前的npm.taobao.org变更为npmmirror.com,见阿里云公告
目前老域名(npm.taobao.org)的证书已过期,若继续使用老域名会出现certificate has expired的错误提示。

Yarn 设置

查看当前使用的镜像源:

1
yarn config get registry
阅读全文 »

LLVM-Obfuscator 可用于混淆程序的代码逻辑,本文介绍如何使用 LLVM-Obfuscator 进行代码逻辑的混淆。

阅读全文 »
0%