CMake中CMAKE_SYSTEM_VERSION对应Windows最低还是目标SDK版本?
CMAKE_SYSTEM_VERSION 与 Windows SDK版本的对应关系
- CMAKE_SYSTEM_VERSION 对应的是目标SDK版本,它用来指定编译项目时使用的Windows SDK版本(也就是编译阶段依赖的SDK头文件、库文件版本)。
- 如果你要设置应用最低支持的Windows系统版本(即你的应用能正常运行的最低Windows版本,比如你需要支持的10.0.18362及以上),需要通过定义
_WIN32_WINNT宏来实现,在CMake中可以这样配置:# 全局设置最低支持Windows 10.0.18362 add_compile_definitions(_WIN32_WINNT=0x0A00000A) # 或者针对特定目标单独设置 target_compile_definitions(你的项目目标名 PRIVATE _WIN32_WINNT=0x0A00000A) - 若你想指定编译时使用的SDK版本为10.0.18362,可通过CMAKE_SYSTEM_VERSION设置:
注意版本号需带上set(CMAKE_SYSTEM_VERSION 10.0.18362.0).0后缀,匹配Windows SDK的完整版本格式。
核心区别总结
- 最低支持版本:由
_WIN32_WINNT宏控制,决定应用可运行的Windows系统版本下限。 - 目标SDK版本:由
CMAKE_SYSTEM_VERSION控制,决定编译时使用的SDK工具链版本。
内容的提问来源于stack exchange,提问作者Kabu
相关产品推荐
相关产品推荐

