我想在我的代码中使用一个库,当且仅当它在configure脚本中启用时才会使用。 用户将首先运行configure脚本然后生成
来编译程序./configure --enable-mylib
make
我需要这个--enable-mylib
成为我的代码中的布尔值和定义,以便我可以使用它作为例如
#ifdef MYLIB
#include "mylib.h"
#endif
...
if(mylib_enabled()) {
do_mylib_call();
}
...
这样做的标准方法是什么?
答案 0 :(得分:3)
对于--enable-mylib
的检查,您应检查图书馆,如果找到,您将拥有可以查看的HAVE_MYLIB
宏。
配置脚本中有类似的内容:
AC_ARG_ENABLE([mylib],
[ --enable-mylib enable the special "mylib" library],
[if test $enableval = yes; then
AC_CHECK_LIB(mylib, function_in_mylib)
AC_CHECK_HEADER(mylib.h)
fi])
这是你的源文件
#if HAVE_MYLIB_H
# include <mylib.h>
#endif
...
#if HAVE_MYLIB
function_in_mylib();
#endif