c++ 有没有一种方法可以从项目中传递预定义的宏,这些宏用作另一个项目的引用

bn31dyow  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(94)

我有以下项目:

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

当我在CoreStaticLib或应用程序中包含HelpersLib中的一些头时,如何将预定义的宏从HelpersLib传递到CoreStaticLib,这些宏将在此项目中可用?例如,某些宏是 *ENABLE_NULL *,并且它必须在应用程序中可用。
在每个项目中手动导入HelpersLib.目标不适合我。

erhoui1w

erhoui1w1#

您可以在.h文件或.cpp文件中定义宏,然后在包含步骤之后,您将能够使用它们(通常,我们不使用.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文件的路径,确保正确。否则将无法使用宏。

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

相关问题