仅当在configure脚本中启用库时才能使用库

时间:2014-02-24 15:12:13

标签: c makefile

我想在我的代码中使用一个库,当且仅当它在configure脚本中启用时才会使用。 用户将首先运行configure脚本然后生成

来编译程序
./configure --enable-mylib
make

我需要这个--enable-mylib 成为我的代码中的布尔值和定义,以便我可以使用它作为例如

#ifdef MYLIB
#include "mylib.h"
#endif
...
if(mylib_enabled()) {
  do_mylib_call();
}
...

这样做的标准方法是什么?

1 个答案:

答案 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