VCPKG 环境变量

VCPKG中有许多的环境变量,如何通过修改环境变量来实现期望的构建结果,可以参照下面的例子:

1. 指定特定的工具集

当一台机器上同时安装了多个版本的Visual Studio 或是一个Visual Studio安装了多个版本的工具集时,vcpkg会默认调用最新的工具集,若想使用旧的工具集,可通过修改指定triplet文件来实现:

例如要在x64-windows triplet下使用VS2017的工具集,可以添加如下内容到 triplets/x64-windows.cmake文件中:

set(VCPKG_PLATFORM_TOOLSET v141)

 2. 添加额外的编译选项

可以通过在对应port的portfile.cmake文件中添加如下内容来添加额外的编译选项:

set(VCPKG_CXX_FLAGS "/arch:SSE2 ${VCPKG_CXX_FLAGS}")
set(VCPKG_C_FLAGS "/arch:SSE2 ${VCPKG_C_FLAGS}") 

 注意:如果您手动设置了VCPKG_CXX_FLAGS,那么您必须同时设置VCPKG_C_FLAGS。

 

下面是vcpkg提供的其他的环境变量的一些介绍:

变量名称

功能

变量的值 / 扩展介绍

VCPKG_TARGET_ARCHITECTURE

指定生成库对应的目标机器的架构

x86/x64/arm/arm64/wasm32

VCPKG_CRT_LINKAGE

指定生成库时使用的MSVC CRT 链接方式(/MT /MD)

dynamic/static

VCPKG_LIBRARY_LINKAGE

指定生成库的类型

dynamic/static

VCPKG_CMAKE_SYSTEM_NAME

指定目标平台类型

Empty(Windows Desktop for legacy reasons)

WindowsStore(Universal Windows Platform)

MinGW(Minimalist GNU for Windows)

Darwin(Mac OSX)

iOS(iOS)

Linux(Linux)

Emscripten(WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

指定目标平台的版本

可选变量

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

指定要使用的备用 CMake toolchain文件

 

VCPKG_CXX_FLAGS

设置额外的编译选项

此选项还具有特定于配置和 C 标志的形式:

VCPKG_CXX_FLAGS

VCPKG_CXX_FLAGS_DEBUG

VCPKG_CXX_FLAGS_RELEASE

 

VCPKG_C_FLAGS

VCPKG_C_FLAGS_DEBUG

VCPKG_C_FLAGS_RELEASE

VCPKG_LINKER_FLAGS

设置额外的链接选项

此选项还具有用于配置特定标志的形式:

VCPKG_LINKER_FLAGS

VCPKG_LINKER_FLAGS_DEBUG

VCPKG_LINKER_FLAGS_RELEASE

VCPKG_CMAKE_CONFIGURE_OPTIONS

设置额外的CMake 配置选项

可选变量

VCPKG_MAKE_CONFIGURE_OPTIONS

设置额外的automake/autoconf 配置选项

可选变量

VCPKG_DEP_INFO_OVERRIDE_VARS

设置覆盖默认triplet文件中的设置选项

 

 

Windows 变量名称

功能

变量的值 / 扩展介绍

VCPKG_ENV_PASSTHROUGH

指示 vcpkg 允许参加构建过程的额外环境变量

在 Windows 上,vcpkg 在与当前命令提示符隔离的特殊干净环境中构建第三方库,以确保构建的可靠性和一致性。此选项可以将额外的环境变量添加到干净环境中的附加环境变量列表,这些环境变量以及它们的哈希值都会记录在VCPKG abi 文件中

VCPKG_ENV_PASSTHROUGH_UNTRACKED

指示vcpkg 允许额外的环境变量进入构建过程,但不会被abi 记录

 

VCPKG_VISUAL_STUDIO_PATH

指定使用的Visual Studio的路径

 

VCPKG_PLATFORM_TOOLSET

指定要使用的基于 VS 的 C/C++ 编译器工具集

v140/v141/v142

VCPKG_LOAD_VCVARS_ENV

设置这个变量可解决当使用VCPKG_CHAINLOAD_TOOLCHAIN_FILE但不向该变量赋值时,vcpkg不设置VS环境变量的问题

TRUE/FALSE

 

MacOS 变量名称

功能

变量的值 / 扩展介绍

VCPKG_OSX_DEPLOYMENT_TARGET

设置编译二进制文件的最低 macOS 版本。这也会更改 CMake 将搜索的 macOS 平台 SDK 的版本

 

VCPKG_OSX_SYSROOT

设置 CMake 将使用的 macOS 平台 SDK 的名称或路径

 

VCPKG_OSX_ARCHITECTURES

设置 CMake 将使用的 macOS / IOS 目标架构

 

 

参考:https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md

posted @ 2021-07-16 18:28  vcpkg_C++包管理器  阅读(3554)  评论(0编辑  收藏  举报