【发布时间】:2009-03-15 14:24:45
【问题描述】:
我目前正在将一个小型 C 项目从 autotools 转换为 CMake。
在旧的configure.in 中,我使用以下几行检查了每个头文件和库函数是否存在:
# Checks for header files
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h time.h math.h sys/stat.h errno.h unistd.h fcntl.h signal.h])
# Checks for library functions
AC_FUNC_FORK
AC_CHECK_FUNCS([time localtime mktime gmtime exit fork chdir atol signal])
AC_FUNC_STRFTIME
这是许多自动工具项目所做的 AFAIK。
尽管编译器已经检查了必要的头文件并且链接器检查了库函数,但我的代码仍然需要在配置阶段完成这些检查才能正确设置 #ifdef HAVE_FOOBAR 等的编译标志。
在这种情况下,使用 CMake 检查标头/函数的最佳做法是什么?
【问题讨论】: