一、概况
在平常的学习环境中,我们通常使用VS在windows下进行C++开发。在测试第三方库的时候,只需包含第三方库的头文件、链接第三方库的库文件,即可在项目中引入C++引入第三方库。然而在工作环境中,依赖的第三方库的数量上来后,这种方式缺点是明显的,一是C++代码可以跨平台但依赖库无法跨平台,二是依赖库管理非常凌乱。在linux环境下,有自带的apt来进行库管理,而windows下,则有vcpkg来解决库管理的难题。为了方便后续工作对接,记录下来vcpkg的安装过程。
开发环境:Windows10 VS2022
二、联网机器安装vcpkg
1、下载vcpkg
新建一个文件夹vcpkg,在该目录下用git Bash检出
git clone https://github.com/microsoft/vcpkg
2、安装vcpkg
打开VS2022的PowerShell,跳转到刚检出的vcpkg根目录,注意不要用错成cmd
./bootstrap-vcpkg.bat
三、离线机器安装vcpkg
1、下载vcpkg
在上网机器上下载好一个稳定版本的vcpkg,比如vcpkg-2023.06.20,拷贝到本地解压
2、安装vcpkg
打开VS2022的PowerShell,跳转到vcpkg根目录,运行./bootstrap-vcpkg.bat,发现报错,因为这个脚本会调用bootstrap.ps1,这个脚本要联网下载vcpkg.exe,需要绕过下载,才可以成功安装。
在编辑器里打开bootstrap.ps1,搜索$versionDate,可以看见类似如下代码
$versionDate = '2023-06-15'
if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64' -or $env:PROCESSOR_IDENTIFIER -match "ARMv[8,9] \(64-bit\)") {
& "$scriptsDir/tls12-download-arm64.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg-arm64.exe" "$vcpkgRootDir\vcpkg.exe"
} else {
& "$scriptsDir/tls12-download.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg.exe" "$vcpkgRootDir\vcpkg.exe"
}
其中versionDate的值表示要下载的vcpkg.exe的版本,下载对应版本的vcpkg.exe放到vcpkg的根目录,比如https://github.com/microsoft/vcpkg-tool/releases/download/2023-06-15/vcpkg.exe,在将&开头的两行用#注释掉,重新运行./bootstrap-vcpkg.bat,安装成功
四、更新vcpkg
如果开发环境是离线的,建议就不要折腾更新vcpkg了,项目用一个稳定版本就好,在学习环境下可以更新vcpkg测试最新支持的包
1、到vcpkg根目录下 git pull
2、重新 ./bootstrap-vcpkg.bat
3、在PowerShell里跳转到vcpkg根目录下 vcpkg update
五、vcpkg集成VS使用
1、集成到全局
vcpkg integrate install
2、移除集成
vcpkg integrate remove
六、vcpkg安装常用库
1、boost
vcpkg install boost:x64-windows
2、cgal
直接在vcpkg上安装cgal有bug,安装cgal前需要先安装yasm(cgal官网说的)
yasm-tool:vcpkg install yasm-tool:x86-windows
vcpkg install cgal:x64-windows
3、opencv
4、freetype
5、jsoncpp
6、poco
7、spdlog
8、tesseract