gpt4 book ai didi

c++ - 如何使 Visual Studio 在为一个配置编译时忽略某些代码行,但在其他配置中不忽略

转载 作者:行者123 更新时间:2023-11-28 01:21:18 24 4
gpt4 key购买 nike

我在 C++ 中有一个 Visual Studio 项目,我需要在其中构建 2 个不同的配置/平台。每个构建配置(假设 A 和 B)都使用不同的库。我的项目中有一个 cpp 文件使用了一个特定功能(1 行代码),该功能仅在配置 A 而不是配置 B 中可用。这会导致编译配置 B 时出现编译错误。

我已经检查了#ifdef 的使用,但是每当切换构建配置时都需要进行一些编辑。

任何人都可以建议一种优雅的方法来使配置 B 仅忽略这一行,而配置 A 照常编译它吗?谢谢!

最佳答案

在项目属性中,在 C++/Preprocessor 下,引入一些特定的配置 #defines - 例如,AY 和 BEE。确保为调试和发布版本添加它们。

然后在配置特定行的源代码中使用#ifdef...#endif

例子:

#ifdef BEE
int a = 0;
#else
int a = 1;
#endif

另一种方法涉及引入多个特定于配置的源文件,并在一个配置中从构建中排除其中的一些,但在另一个配置中不排除。

在其他环境中,可以通过编译器命令行提供额外的 #defines 来实现同样的效果 - -D MYSYMBOL 用于 GCC。 MSVC 内部也支持这一点。

关于c++ - 如何使 Visual Studio 在为一个配置编译时忽略某些代码行,但在其他配置中不忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com