欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CMAKE搭配vcpkg在msvc上进行静态编译

程序员文章站 2022-05-06 20:09:45
...

CMakeLists.txt设置MSVC_RUNTIME_LIBRARY ,相当于用msvc编译release时加上/MT,debug 时加上 /MTD

add_executable(foo foo.c)
set_property(TARGET foo PROPERTY
  MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")

详细介绍见CMake文档 MSVC_RUNTIME_LIBRARY — CMake 3.21.2 Documentation

设置两个cmake configure参数,-DCMAKE_TOOLCHAIN_FILE 指定vcpkg位置; -DVCPKG_TARGET_TRIPLET 指定编译目标

cmake .. -DCMAKE_TOOLCHAIN_FILE=.../vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x86-windows-static

思路来自Vcpkg updates: Static linking is now available - C++ Team Blog