如何在CMake中设置UseOfAtl以生成Visual Studio项目对应配置?
无需修改CMake源码配置Visual Studio项目的UseOfAtl选项
方法一:通过自定义MSBuild属性文件(.props)设置
CMake本身没有直接暴露UseOfAtl的配置变量,但可以通过给目标附加自定义MSBuild属性文件来实现:
- 在CMake脚本中生成一个临时的
.props文件,内容包含UseOfAtl的设置:
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ATLStatic.props "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <PropertyGroup>\n <UseOfAtl>Static</UseOfAtl>\n </PropertyGroup>\n</Project>")
- 将这个属性文件关联到你的目标项目:
set_target_properties(你的目标名称 PROPERTIES VS_USER_PROPS "${CMAKE_CURRENT_BINARY_DIR}/ATLStatic.props")
- 同时设置MFC不启用(对应
<UseOfMfc>false</UseOfMfc>):
set(CMAKE_MFC_FLAG 0)
方法二:通过编译选项指定静态ATL
Visual Studio的<UseOfAtl>Static</UseOfAtl>对应编译选项/ATL:static,可以直接在CMake中为目标添加该编译选项:
# 为目标添加静态ATL编译选项 target_compile_options(你的目标名称 PRIVATE "/ATL:static") # 禁用MFC set(CMAKE_MFC_FLAG 0)
这种方法更简洁,不需要额外生成属性文件,编译时CMake会自动将该选项传递给Visual Studio,进而自动设置UseOfAtl为Static。
内容的提问来源于stack exchange,提问作者AllCach
相关产品推荐
相关产品推荐

