gpt4 book ai didi

c++ - 如何根据编译器指令 -D 自动选择 include.h 文件?

转载 作者:行者123 更新时间:2023-11-30 01:01:32 26 4
gpt4 key购买 nike

我想在我的程序中有一个通用的 include.h 头文件,它将列出所有可能的包含文件,当使用 -D ITEM=ITEM1 编译器标志选择时要使用。例如,如果我想为 ITEM1 构建此库,则为 item2 构建 -D ITEM=ITEM1,它将是 -D ITEM=ITEM2。

header.h文件:

#ifdef ITEM1
#include item1.h
#endif
#ifdef ITEM2
#include item2.h
#endif

头文件 item1.h 和 item2.h 将是来自工作目录之外的另一个目录的符号链接(symbolic link)

当我执行此方案时,我在每个 item1.h 或 item2.h 中的定义中遇到范围错误

最佳答案

您可以使用-D ITEM1-D ITEM2 使您发布的代码正常工作。如果您想基于 -D ITEM=... 的逻辑,则需要使用 -D ITEM=1-D ITEM=2 并将您的代码更改为:

#ifdef ITEM

#if ITEM == 1
#include item1.h
#elif ITEM == 2
#include item2.h
#else
// Unknown value of ITEM. Figure out what do for this case.
#endif

#else
// ITEM is not defined. Figure out what do for this case.
#endif

关于c++ - 如何根据编译器指令 -D 自动选择 include.h 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58939399/

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