vcpkg常用

vcpkg c++包管理器

在Windows下开发C++程序时,常用依赖包的管理是一个头疼的问题。Vcpkg是一个命令行包管理工具,它可以极大地简化三方库的获取、安装、使用和部署流程。

相关网址

  • 知乎博文1
  • GitHub
  • 库源搜索

windows安装vcpkg

git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat

Linux安装vcpkg

git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
// ps:记得需要先安装 curl zip unzip tar包

常用指令

vcpkg list   // 查看本地已安装包列表 
vcpkg install [package name]    // 安装包,安装32位
vcpkg install [package name]:x64-windows    // 安装包,安装64位
vcpkg search [package name]    // 根据片段搜索包
vcpkg remove [package name]     // 卸载包
vcpkg integrate install     // 使已安装包在用户范围内可用。 首次使用时需要管理权限
vcpkg integrate remove      // 删除用户范围的集成

使用方式
官方推荐我们将vcpkg作为项目的子模块进行引入,即在项目的目录下进行安装项目本地的vcpkg包。

├── CMakeLists.txt
├── main.cxx
└── vcpkg                   // vcpkg本地子模块项目

在cmake中使用vckpg的包

cmake_minimum_required(VERSION 3.5)

# 要在开头project之前设置CMAKE_TOOLCHAIN_FILE这样就能够使用vcpkg的包
set(CMAKE_TOOLCHAIN_FILE "D:/vcpkg/scripts/buildsystems/vcpkg.cmake" 
                                CACHE STRING "Vcpkg toolchain file")

project(cmake_vcpkg LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Drogon CONFIG REQUIRED)

add_executable(cmake_vcpkg main.cpp)

install(TARGETS cmake_vcpkg LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

target_link_libraries(${PROJECT_NAME} PRIVATE Drogon::Drogon)

国内安装GitHub工具库时,因为墙的原因许多库都很容易安装失败。安装失败就多安装几次,不行就开个VPN进行安装把。

当然在很多时候按照上面的设置光是配置CMAKE_TOOLCHAIN_FILE变量会发现查找不到正确的包,在这个时候我们需要手动引入vcpkg.cmake进行包含。

cmake_minimum_required(VERSION 3.5)

set(CMAKE_CXX_STANDARD 17)

# 设置工具链
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file")

# 手动加入vcpkg.cmake 子模块
include(${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake)

find_package(Drogon CONFIG REQUIRED)

project(web LANGUAGES CXX)

add_executable(${PROJECT_NAME} main.cxx)

target_link_libraries(${PROJECT_NAME} PRIVATE Drogon::Drogon)

你可能感兴趣的:(常用汇总,c++,vcpkg)