VCPKG 跨平台C++ 库管理器

VCPKG 适用于 Windows、Linux 和 MacOS 的 C++库管理工具,有一些常用的库,没必要自己手动一次次编译,太麻烦,直接用此工具安装即可。

VCPKG 安装

此工具安装地址

复制代码
https://github.com/microsoft/vcpkg

下载即可

复制代码
git clone https://github.com/microsoft/vcpkg

执行如下命令

复制代码
.\bootstrap-vcpkg.bat

显示执行完毕,可以看到执行这个命令的目的就是下载 vcpkg.exe这个文件。

配置为默认命令

添加到系统路径下

然后,就可以直接在命令行里使用此命令了

默认搜索

vcpkg search redis 就可以看到所有库

VCPKG 命令

具体可以参考这个地址

复制代码
https://learn.microsoft.com/zh-cn/vcpkg/commands/add
命令 功能描述
vcpkg search [pkg] 搜索可用库
vcpkg install [pkg] 安装库
vcpkg install [pkg]:x64-windows 安装特定版本
vcpkg remove [pkg] 卸载库
vcpkg remove --outdated 卸载所有不在使用库
vcpkg list 列出已安装包
vcpkg update 检查可更新库
vcpkg upgrade 升级所有库
vcpkg integrate install 全局集成到 Visual Studio
vcpkg integrate remove 取消全局集成

结合VS2022开发

默认环境设置

先执行 vcpkg integrate install命令,集成到VS环境

创建个项目

还是 boost项目,我们先用 vcpkg search boost命令查询有什么包可以安装

查看还是有包可以安装的

直接执行以下命令

复制代码
vcpkg install boost

然后,就如图

会一直安装和下载各种包。

第一次下载还是要一些时间的。

而且,实际上里面包含了很多东西,所以,文件也会大一些。

新增项目

复制代码
#include <boost/thread.hpp>
#include <iostream>

void task1() {
    for (int i = 0; i < 5; ++i) {
        std::cout << "Task1: " << i << std::endl;
        boost::this_thread::sleep(boost::posix_time::milliseconds(200));
    }
}

void task2(int n) {
    for (int i = 0; i < n; ++i) {
        std::cout << "Task2: " << i << std::endl;
        boost::this_thread::sleep(boost::posix_time::milliseconds(300));
    }
}

int main() {
    // 创建线程
    boost::thread t1(task1);
    boost::thread t2(task2, 5);

    // 等待线程结束
    t1.join();
    t2.join();

    std::cout << "所有线程完成!" << std::endl;
    return 0;
}

可以看到,现在已经不需要引用头文件和lib库了,它自己就会引用了。

相关推荐
xiaoye-duck9 小时前
《C++ 工具库实战》gflags 命令行参数解析库详解
c++·第三方库
狂奔的sherry9 小时前
C++ 宏生成访问函数的代价:访问权限、调试和类型检查
c++·宏·编译·预处理器·类型检查
划破黑暗的第一缕曙光10 小时前
[C++]:5.STL:string(2)
java·c++·redis
小超人诞生日记13 小时前
C++ 异常机制详解:从抛出捕获到异常安全
c++·算法
多弗朗皮卡丘13 小时前
C++的IO流
开发语言·c++·io流·文件io流
xiangyun6114 小时前
C++ 手撕 shared_ptr:引用计数与控制块到底长什么样?
开发语言·c++·算法·面试·stl
SunkingYang15 小时前
C++14 vs C++17:新特性对比与用法指南
c++·新特性·用法·c++14·示例·c++17
SunkingYang16 小时前
C++ Lambda 表达式原理详解
c++·lambda·理论·原理·表达式
xiaoye-duck16 小时前
《C++ 工具库实战》GTest 单元测试:断言、全局环境、局部夹具与底层原理
c++·单元测试·第三方库
学逆向的16 小时前
C++ 匿名命名空间
开发语言·c++·网络安全