【发布时间】:2014-07-24 07:41:46
【问题描述】:
我有一个名为api.h 的头文件,其中包含我的库的公共函数。我希望函数void func_xxx(); 仅在用户使用./configure --enable-xxx 启用它时在api.h 中声明。这可能吗?理想情况下,我不想为此使用#ifdef?我知道如何在我的configure.ac 脚本中实现--enable-xxx 标志,但如果使用--enable-xxx,我不知道如何将函数声明添加到api.h。
感谢您的帮助
【问题讨论】:
-
如果你不介意我问,你为什么要避免
#ifdef? -
我的目标是用户不需要使用 -DHAVE_XXX 来编译他的程序。
-
但他没有。 autotools 会解决这个问题。除非我误解了你 =)
-
感谢您的cmets,我会仔细研究一下。
-
我看到如果我在 api.h 中包含 config.h 可以实现我想要的吗? (但通常不建议这样做!?)。除此之外,我仍然不知道该怎么做,即如果 program.c 包含 api.h 并使用 func_xxx(),则 gcc -c program.c 失败。