我正在尝试设置一个项目以使用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 自动发现这一点?
最终用户是否必须手动提交路径才能查找 lapacke.h,或者是否有办法让 autoconf 自动发现这一点?
这是 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]))