Visual Studio中如何根据代码宏设置项目输出TargetName
Visual Studio 基于代码宏设置输出文件名的实现方式
需求背景
需要在同一个Visual Studio项目中,根据代码内定义的预处理宏自动切换输出文件名,例如定义NEW_UI宏时输出libnewUI.dll,未定义该宏时输出libUI.dll,对应判断逻辑示例:
#define NEW_UI #ifdef NEW_UI // 输出文件名:libnewUI.dll #else // 输出文件名:libUI.dll #endif
可落地实现方案:多生成配置绑定宏规则
目前已验证可用的实现方式为搭配自定义宏使用多生成配置完成需求,操作步骤:
- 依次打开「Project -> Properties -> Configuration Manager」添加新的生成配置,针对每个配置单独修改输出项的
TargetName属性,填入对应需要的目标文件名。 - 若需要使用自定义控制宏,依次进入「Project -> Properties -> C/C++ -> Preprocessor」,将自定义宏添加到对应配置的预处理器定义列表中,和该配置的输出文件名一一匹配。
- 构建前切换到对应配置,即可生成对应命名规则的目标文件。
补充交流
如果有无需手动切换配置、可在构建过程中自动识别宏状态修改输出名的更优实现,欢迎补充交流。
内容的提问来源于stack exchange,提问作者NoA
相关产品推荐
相关产品推荐

