我想在我的代码中使用一个库,当且仅当它在配置脚本中启用时。用户将通过首先运行配置脚本然后 make 来编译程序
./configure --enable-mylib
make
我需要这个 --enable-mylib
在我的代码中变成一个 bool 值和一个定义,这样我就可以使用它作为例子
#ifdef MYLIB
#include "mylib.h"
#endif
...
if(mylib_enabled()) {
do_mylib_call();
}
...
这样做的标准方法是什么?
要检查 --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
我是一名优秀的程序员,十分优秀!