gpt4 book ai didi

c++ - 使用 Autotools (C/C++) 生成可选的源代码?

转载 作者:太空宇宙 更新时间:2023-11-04 03:45:26 24 4
gpt4 key购买 nike

我有一个名为 api.h 的头文件,其中包含我的库的公共(public)函数。我希望函数 void func_xxx(); 仅当用户使用 ./configure --enable-xxx< 启用它时才在 api.h 中声明。这可能吗?理想情况下,我不想为此使用 #ifdef 吗?我知道如何在我的 configure.ac 脚本中实现 --enable-xxx 标志,但我不知道如何将函数声明添加到 api.h 如果使用 --enable-xxx

谢谢你的帮助

最佳答案

你想要实现的不是好的做法,因为正如你提到的,你需要 #if 预处理器宏,将 config.h 拖到公共(public)界面,并且因此,必须安装它。配置文件不是用来安装的。

我建议您在运行时执行此操作,这是 API design for C++ 等书籍中建议的做法, 顺便说一句,非常推荐阅读:

bool isFuncXXXEnabled();
void funcxxx();

您的代码:

if (isFuncXXXEnabled()) {
}
else {
}

在您的 .cpp 文件中,您可以禁用函数体,因为 `config.h 不会暴露在公共(public)接口(interface)中。

关于c++ - 使用 Autotools (C/C++) 生成可选的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24927808/

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