有没有办法从项目中传递用作另一个项目参考的预定义宏

问题描述 投票:0回答:1

我有以下项目:

  • Application.vcxproj(参考 CoreStaticLib)
  • CoreStaticLib.vcxproj(参考HelpersLib)
  • HelpersLib.vcxproj

当我在 CoreStaticLib 或应用程序中包含来自 HelpersLib 的一些标头时,如何将预定义的宏从 HelpersLib 传递到 CoreStaticLib,宏将在此项目中可用?例如,某个宏是 ENABLE_LOG 并且它必须在应用程序中可用。

在每个项目中手动导入HelpersLib.targets不适合我。

c++ visual-studio msbuild
1个回答
0
投票

您可以在.h文件或.cpp文件中定义宏,然后在include步骤之后,您将能够使用它们(一般情况下,我们不使用.cpp来定义。)。

比如我这边的cpp方案的结构是这样的:

这是我这边头文件HelpersLib.h的内容:

#pragma once

#define ENABLE_LOG true

然后你可以引用包含你想要的宏的头文件。

在 .h 和 .cpp 中,您都可以像这样包含宏:

#include "<The path of the header file which contains macros.>"

比如我这边是:

#include "..\HelpersLib\HelpersLib.h"

您可以将参考步骤放在当前项目的头文件中。然后在cpp文件中使用当前项目的头文件即可。或者,您可以在每次要使用宏时直接将原始 .h 文件包含在当前文件中。

请注意.h文件的路径,确保正确。否则你将无法使用宏。

如果你想问是否有一种简单的方法可以让引用项目中的宏一步到位在当前项目的任何地方可用,那么我认为没有这样的方法。这个东西最终是基于文件的,而不是整个项目设置。如果问题是在谈论其他事情,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.