默认的选项
默认使用的是msvc进行编译动态库。
安装别的版本需要有对应编译器,否则报错。
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