家居装饰
28.14M · 2026-04-12
vcpkg 是一个开源的 C/C++ 包管理器,由 Microsoft 开发和维护,主要用于简化 C++ 项目中第三方库的安装和管理过程。它支持跨平台使用,包括 Windows、Linux 和 macOS。
git clone
cd vcpkg
# Windows 平台
.ootstrap-vcpkg.bat
# Linux/macOS 平台
./bootstrap-vcpkg.sh
将 vcpkg 目录添加到系统的 PATH 环境变量中,以便在任何位置都能使用 vcpkg 命令。
# 基本安装
vcpkg install <library-name>
# 指定平台架构
vcpkg install <library-name>:<triplet>
# 例如:安装 64 位 Windows 版本的 OpenCV
vcpkg install opencv4:x64-windows
# 搜索库
vcpkg search <query>
# 例如:搜索与 opencv 相关的库
vcpkg search opencv
# 列出所有已安装的库
vcpkg list
# 更新所有已安装的库
vcpkg upgrade
# 更新指定库
vcpkg upgrade <library-name>
# 移除指定库
vcpkg remove <library-name>
# 移除库及其依赖
vcpkg remove --recurse <library-name>
vcpkg 支持通过环境变量设置代理,以便在网络受限环境中使用:
# Windows (cmd)
set http_proxy=
set https_proxy=
# Windows (PowerShell)
$env:http_proxy="http://your-proxy:port"
$env:https_proxy="https://your-proxy:port"
# Linux/macOS
export http_proxy=
export https_proxy=
# 然后运行 vcpkg 命令
vcpkg install <library-name>
vcpkg 允许你为自己的库创建端口,以便通过 vcpkg 进行管理:
ports/<your-library-name>portfile.cmake 文件,定义库的获取、构建和安装过程vcpkg.json 文件,定义库的元数据vcpkg install <your-library-name> 测试打包# 导出已安装的库到指定目录
vcpkg export --zip --output=my-export.zip <library-name>
# 导出所有已安装的库
vcpkg export --zip --output=all-libraries.zip
vcpkg 支持使用清单文件 (vcpkg.json) 来管理项目依赖,确保团队成员使用相同版本的库:
vcpkg.json 文件:{
"name": "my-project",
"version-string": "1.0.0",
"dependencies": [
"opencv4",
"boost"
]
}
vcpkg install 安装依赖# 全局集成(所有 VS 项目都可以使用)
vcpkg integrate install
# 项目级集成
vcpkg integrate project
# 然后按照提示在 VS 中安装生成的 NuGet 包
在 CMakeLists.txt 文件中设置 vcpkg 工具链文件:
cmake_minimum_required(VERSION 3.5)
# 设置 vcpkg 工具链文件
set(CMAKE_TOOLCHAIN_FILE "<path-to-vcpkg>/scripts/buildsystems/vcpkg.cmake")
project(YourProject)
# 查找并使用库
find_package(OpenCV REQUIRED)
# 添加可执行文件并链接库
add_executable(YourExecutable main.cpp)
target_link_libraries(YourExecutable PRIVATE ${OpenCV_LIBS})
问题:网络连接问题导致下载失败
解决方案:设置代理,或使用 --binarysource 参数指定本地二进制源
问题:依赖冲突
解决方案:使用 vcpkg remove 移除冲突的库,然后重新安装
CMAKE_TOOLCHAIN_FILE,并使用正确的 tripletvcpkg.json 中指定版本约束,例如:
{
"dependencies": [
{"name": "opencv4", "version>=": "4.5.0"}
]
}
vcpkg.json 管理依赖,确保版本一致性vcpkg upgrade 保持库的最新状态vcpkg cache 命令管理构建缓存,提高构建速度vcpkg install opencv4:x64-windows
vcpkg install opencv4:x64-linux
vcpkg help 查看命令帮助,或访问 vcpkg 文档 获取详细信息vcpkg install opencv4:x64-windows
CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
set(CMAKE_TOOLCHAIN_FILE "<path-to-vcpkg>/scripts/buildsystems/vcpkg.cmake")
project(OpenCVTest)
find_package(OpenCV REQUIRED)
add_executable(OpenCVTest main.cpp)
target_link_libraries(OpenCVTest PRIVATE ${OpenCV_LIBS})
main.cpp:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 读取图片
Mat img = imread("test.png");
if (img.empty()) {
cout << "Could not read the image" << endl;
return 1;
}
// 显示图片
namedWindow("image", WINDOW_NORMAL);
imshow("image", img);
// 等待按键
waitKey(0);
// 释放窗口
destroyAllWindows();
return 0;
}
mkdir build && cd build
cmake ..
cmake --build .
# 运行程序
./OpenCVTest
vcpkg 是一个强大的 C++ 包管理器,它简化了第三方库的安装和管理过程,提供了跨平台的支持,使得开发者能够更专注于项目的核心功能。通过掌握 vcpkg 的使用方法和最佳实践,你可以更高效地构建和管理 C++ 项目,减少依赖管理的复杂性。
参考链接: