[英]Optional source code generation using Autotools (C/C++)?
我有一个名为api.h
的头文件,其中包含我库的公共函数。 我想要功能void func_xxx();
仅当用户使用./configure --enable-xxx
启用它时,才在api.h
中声明它。 这可能吗? 理想情况下,我不想为此使用#ifdef
吗? 我知道如何在configure.ac
脚本中实现--enable-xxx
标志,但是如果使用--enable-xxx
我不知道如何向api.h
添加函数声明。
谢谢你的帮助
您想要实现的目标不是一个好习惯,因为正如您提到的,您将需要#if
预处理器宏,将config.h
拖到公共接口上,因此必须安装它。 配置文件不是要安装的。
我建议您在运行时执行此操作,这是建议的做法,例如C ++的API设计 ,非常推荐阅读:
bool isFuncXXXEnabled();
void funcxxx();
您的代码:
if (isFuncXXXEnabled()) {
}
else {
}
在您的.cpp文件中,您可以禁用该函数的主体,因为`config.h不会在公共接口中公开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.