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库了,它自己就会引用了。

相关推荐
NeilYuen6 小时前
【C++】STL源码仿写(二):vector
开发语言·c++
郝学胜_神的一滴7 小时前
游戏引擎原理与实践 04:拆解引擎基础系统与内存管理
c++·游戏
All for pursuit.7 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
weixin_307779137 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
青少儿编程课堂8 小时前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门
c++·python·算法·bfs·信息学竞赛
倒头就睡的小比特8 小时前
C++多态
c++
潼心1412o10 小时前
C++初阶(长期更新)第5讲:类和对象(中)
开发语言·c++
weixin_3077791310 小时前
C++代码实现MATLAB中的normalize函数功能
开发语言·c++·算法·matlab
(Charon)11 小时前
【C++面试】手写String类:同时实现拷贝构造与移动构造
c++·算法
程序员老陆11 小时前
通过std::unique_ptr初始化std::shared_ptr
开发语言·c++