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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM