autoconf 是否发现系统中存在的头文件?
Does autoconf discover header files present on system?
我正在尝试设置一个项目以使用 GNU 自动工具构建。我的源文件之一具有以下头文件指令:
#include<lapacke.h>
。
在 OpenSUSE 机器上,lapacke.h
安装在 /usr/include/openblas/
中,但此位置不适用于其他发行版。
在我的configure.ac
文件中,我检查这个头文件是否可用:
AC_CHECK_HEADERS([fcntl.h float.h inttypes.h limits.h stdint.h stdlib.h string.h unistd.h lapacke.h],,AC_MSG_ERROR([required header file missing]))
如果没有其他提示,配置脚本无法找到 lapacke.h
。
checking lapacke.h usability... no
checking lapacke.h presence... no
checking for lapacke.h... no
configure: error:
required header file missing
我可以手动指定目录./configure CFLAGS="-I/usr/include/openblas"
,成功了。最终用户是否必须手动提交路径以查找 lapacke.h
,或者 autoconf 是否有办法自动发现它?
Do end users have to manually submit the path to look for lapacke.h, or is there a way for autoconf to discover this automatically?
这是autoconf可以告诉的,但不一定会自动算出来的,例如:
AC_CHECK_HEADERS([fcntl.h float.h inttypes.h limits.h stdint.h stdlib.h string.h unistd.h],,AC_MSG_ERROR([required header file missing]))
AC_CHECK_HEADERS([openblas/lapacke.h lapacke.h],,AC_MSG_ERROR([required header file missing]))
我正在尝试设置一个项目以使用 GNU 自动工具构建。我的源文件之一具有以下头文件指令:
#include<lapacke.h>
。
在 OpenSUSE 机器上,lapacke.h
安装在 /usr/include/openblas/
中,但此位置不适用于其他发行版。
在我的configure.ac
文件中,我检查这个头文件是否可用:
AC_CHECK_HEADERS([fcntl.h float.h inttypes.h limits.h stdint.h stdlib.h string.h unistd.h lapacke.h],,AC_MSG_ERROR([required header file missing]))
如果没有其他提示,配置脚本无法找到 lapacke.h
。
checking lapacke.h usability... no
checking lapacke.h presence... no
checking for lapacke.h... no
configure: error:
required header file missing
我可以手动指定目录./configure CFLAGS="-I/usr/include/openblas"
,成功了。最终用户是否必须手动提交路径以查找 lapacke.h
,或者 autoconf 是否有办法自动发现它?
Do end users have to manually submit the path to look for lapacke.h, or is there a way for autoconf to discover this automatically?
这是autoconf可以告诉的,但不一定会自动算出来的,例如:
AC_CHECK_HEADERS([fcntl.h float.h inttypes.h limits.h stdint.h stdlib.h string.h unistd.h],,AC_MSG_ERROR([required header file missing]))
AC_CHECK_HEADERS([openblas/lapacke.h lapacke.h],,AC_MSG_ERROR([required header file missing]))