【发布时间】:2022-01-20 22:43:41
【问题描述】:
我正在开发 Visual Studio 2019 中的 C++ 项目,该项目应该能够编译为可执行文件和 DLL。它是遗留代码,包含预处理器标志 AS_EXE 和 AS_DLL,这可能是我需要设置的标志。我只是不知道如何根据项目->属性->配置属性->常规->配置类型中的不同值来执行此操作。我希望动态库 (.dll) 和应用程序 (.exe) 的值分别映射到两个预处理器定义,AS_DLL 和 AS_EXE。
过去几天我在 Google 上四处查看,但没有运气。
如果它可以类似于在调试和发布之间切换时完成,那就太好了,但我感觉它会更复杂一些。这甚至可以实现吗?如果是这样,我将如何去做?
【问题讨论】:
-
你也可以在编译器命令行上
#define的东西。这类似于调试/发布开关。 -
不确定您实际要求的是什么,但编译器属性和链接器属性有一个命令行属性,您可以在其中查看完整的命令行参数
-
@engf-010 我在问如何根据项目属性中设置的选项来传递 AS_DLL/AS_EXE。它可能可以在代码中完成,但最好让 Visual Studio 自己传递预处理器定义。类似于 "if ConfigType == dll /D "AS_DLL" else /D "AS_EXE" (伪代码 ofc)
-
本文档可能会有所帮助:Microsoft-specific predefined macros.
标签: c++ visual-studio visual-studio-2019 preprocessor