如果且仅当在配置脚本中启用库时,我希望在代码中使用它。
用户将首先运行配置脚本来编译程序,然后
./configure --enable-mylib
make
我需要这个
--enable-mylib
在我的代码中变成一个布尔值和一个定义,以便我可以将其用作示例
#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
关于c - 仅在配置脚本中启用了库的情况下才使用库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21991549/