默认的选项

默认使用的是msvc进行编译动态库。

1
vcpkg install zlib

安装别的版本需要有对应编译器,否则报错。

1
2
error: while detecting compiler information:
The log file content at "D:\d_files\vcpkg-master\buildtrees\detect_compiler\stdout-x64-android.log" is:

可以安装mingw版本

1
vcpkg install zlib:x64-mingw-dynamic

编译其他的类型

1
vcpkg install zlib:x64-windows-static-md-release
1
2
cmake -S . -B build-clang -DCMAKE_TOOLCHAIN_FILE="windows-clang.cmake"
cmake --build build-clang

my-vcpkg-triplets -clang llvm

依赖这个项目

Neumann-A/my-vcpkg-triplets: my collection of vcpkg triplets (github.com)

设置LLVMInstallDir 环境变量

1
2
3
vcpkg install zlib:x64-windows-llvm --overlay-triplets=C:/Users/xd/Desktop/my-vcpkg-triplets 

vcpkg install zlib:x64-win-llvm --overlay-triplets=C:/Users/xd/Desktop/my-vcpkg-triplets
1
vcpkg install libpng:x64-win-llvm --overlay-triplets=C:/Users/xd/Desktop/my-vcpkg-triplets 

使用clang-自定义

1
2
vcpkg install zlib:x64-xd-clang-dynamic

需要自定义下面的

1
2
3
4
5
6
7
8
9
10
11
#x64-xd-clang-dynamic.cmake
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_ENV_PASSTHROUGH PATH)

#set(VCPKG_CMAKE_SYSTEM_NAME Linux) #clang
set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled)


set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE D:/d_files/vcpkg-master/scripts/toolchains/windows-clang.cmake)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#windows-clang.cmake
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR x86_64)

#set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs)
#set(CMAKE_STAGING_PREFIX /home/devel/stage)
#静态链接

set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

参考

如何设置 vcpkg 依赖特定编译器-CSDN博客

CMake 项目中的 vcpkg | Microsoft Learn

三元组参考 | Microsoft Learn