我在cygwin上使用autoconf / automake配置脚本,我遇到的问题是它没有完成我的依赖。
例如我在configure.ac中执行:
AC_CHECK_LIB(mp3lame,lame_init ,, AC_MSG_ERROR(找不到所需的库LAME。)) AC_CHECK_HEADER(lame / lame.h,AC_MSG_ERROR(找不到LAME的标题。)
找到跛脚。已安装Lame,如果我locate lame.h
,我会在/usr/local/include/lame/lame.h
中找到它。现在,如果我用
export INCLUDE_PATH = / usr / local / include / export LIBRARY_PATH = / usr / local / lib /
它按预期工作。我通过下载并运行来安装lame:
./configure
make
make install
所以我认为它应该以一个“足够标准”的路径结束我的配置脚本来找到它。以类似的方式,我正在使用:
检查json解析器janssonPKG_CHECK_MODULES(JANSSON,jansson)
除非我这样做,否则它找不到它:
导出PKG_CONFIG_PATH = / usr / local / lib / pkgconfig /
这是cygwin的问题(我不这么认为)或者我的configure.ac脚本有问题吗?
答案 0 :(得分:1)
这不是cygwin的问题,也不是你的configure.ac。这是PKG_CHECK_MODULES
的“功能”,也是我建议不要使用它的原因之一。如果使用从使用PKG_CHECK_MODULES
的configure.ac生成的配置脚本,则用户必须设置PKG_CONFIG_PATH
。最好的方法是使用AC_CHECK_LIB
代替PKG_CHECK_MODULES
。你绝对正确./configure && make && make install
给你一个应该有用的标准安装。问题是PKG_CHECK_MODULES
在标准安装方面表现不佳。