[工具]包管理工具Vcpkg 的使用
vcpkg是Microsoft的跨平台开源软件包管理器,极大地简化了 Windows、Linux 和 macOS 上第三方库的购置与安装。如果项目要使用第三方库,建议通过 vcpkg 来安装它们。vcpkg 同时支持开源和专有库。
Microsoft中对它的具体介绍:
https:// docs.microsoft.com/zh-c n/cpp/build/vcpkg?view=vs-2019
1、安装
a. 获取Vcpkg
Vcpkg的官方源码站点为: https:// github.com/microsoft/vc pkg
git clone https://github.com/microsoft/vcpkg
b.编译Vcpkg
Windows平台:在cmd中执行Vcpkg工程目录下的“bootstrap-vcpkg.bat”命令,编译好后会在同级目录下生成vcpkg.exe文件。
Linux平台:在命令行中执行在vcpkg工程目录下“sudo bash ./ bootstrap-vcpkg.sh”命令,会生成一个可执行文件vcpkg。定义环境变量 VCPKG_ROOT="/vcpkg"
2、使用Vcpkg管理库(以windows平台为例)
a.查看Vcpkg支持的库
.\vcpkg.exe search
b.安装一个库(以eigen3为例)
.\vcpkg install eigen3
注:可以用 eigen:x86-windows或eigen:x64-windows指定安装的版本,可以使用的版本还包括
x64-windows-static x64-windows x86-windows-static x86-windows.若不指定默认为32位;
添加环境变量 `VCPKG_DEFAULT_TRIPLET=x64-windows` 可使默认集成位64位
可以使用 ./vcpkg help triplets 查看支持的平台。
c.查看已经安装的开源库
.\vcpkg.exe list
d.移除一个已经安装的库
.\vcpkg.exe remove egien3
3、集成使用
a. 集成到全局。Vcpkg提供了一套机制,可以全自动的适配目录,而开发者不需要关心已安装的库的目录在哪里,也不需要设置。
.\vcpkg integrate install
“Applied user-wide integration for this vcpkg root.”表示集成成功。这时候可以在Visual Studio 任意的工程中使用安装好的第三方库。
若要移除集成
.\vcpkg integrate remove
此时与CMake一起使用时,需添加依赖以及在设置路径(具体使用的方法在集成和安装库时会有说明)
需要注意的点:
若在windows平台上使用CLion+Mingw+Vcpkg使用时需要在CMakeLists.txt中添加如下语句:
if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)
set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "")
endif()
模板如下:
cmake_minimum_required (VERSION 3.15)
SET(CMAKE_TOOLCHAIN_FILE "D:/VS/vcpkg/scripts/buildsystems/vcpkg.cmake")
# 上述语句等价于 cmake -CMAKE_TOOLCHAIN_FILE = D:/VS/vcpkg/scripts/buildsystems/vcpkg.cmake
if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)
set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "")
endif()
# 项目名称
project (LM_Tutorial)
# 寻找添加的库