Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
configure.ac在cygwin下找不到依赖项_Cygwin_Autoconf - Fatal编程技术网

configure.ac在cygwin下找不到依赖项

configure.ac在cygwin下找不到依赖项,cygwin,autoconf,Cygwin,Autoconf,我在cygwin上使用了autoconf/automake配置脚本,但我有一个问题,那就是它不能定义我的依赖项 例如,在我的configure.ac中: AC_CHECK_LIB(mp3lame、lame_init、AC_MSG_错误(未找到必需的库lame)) AC_检查_标题(lame/lame.h,,AC_消息_错误(找不到lame的标题)) 找到瘸子。Lame已安装,如果我在/usr/local/include/Lame/Lame.h中找到Lame.h。现在,如果我设置库_路径并使用 导

我在cygwin上使用了autoconf/automake配置脚本,但我有一个问题,那就是它不能定义我的依赖项

例如,在我的configure.ac中:

AC_CHECK_LIB(mp3lame、lame_init、AC_MSG_错误(未找到必需的库lame)) AC_检查_标题(lame/lame.h,,AC_消息_错误(找不到lame的标题))

找到瘸子。Lame已安装,如果我在
/usr/local/include/Lame/Lame.h
中找到Lame.h。现在,如果我设置库_路径并使用

导出包含路径=/usr/local/INCLUDE/ 导出库路径=/usr/local/lib/

它按预期工作。我通过下载并运行以下程序安装了lame:

./configure
make
make install 
所以我认为它应该以一个“足够标准”的路径结束,以便我的配置脚本找到它。以类似的方式,我使用以下方法检查json解析器jansson:

PKG_CHECK_MODULES(JANSSON,jansson)
除非我找到它,否则它不会找到它:

导出PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/


这是cygwin的问题(我不这么认为)还是我的configure.ac脚本的问题?

这不是cygwin的问题,也不是configure.ac的问题。这是
PKG\u CHECK\u模块的一项“功能”
,也是我建议不要使用它的原因之一。如果使用使用
PKG\u CHECK\u MODULES
的configure.ac生成的配置脚本,则用户必须设置
PKG\u CONFIG\u路径
。最好的方法是使用
AC\u CHECK\u LIB
而不是
PKG\u CHECK\u模块
。您完全正确,
/configure&&make&&makeinstall
为您提供了一个应该可以正常工作的标准安装。问题是
PKG\u CHECK\u模块
与标准安装不兼容。

谢谢您的回答!!好的,我明白了,问题是AC_CHECK_LIB(我也使用它)需要我使用“export LIBRARY_PATH=/usr/local/LIB/”设置LIBRARY_PATH,所以它也不能用于标准安装。有几种典型的解决方案:将/usr/local/lib添加到链接器搜索的标准位置列表中(例如在/etc/ld.so.conf中添加一行),将路径放在环境中的LIBRARY\u path中,或者将config.site放在/usr/local/share中,根据需要调整LIBRARY\u路径。是的,我当然可以这样做。但我觉得很奇怪,我不得不这么做。通常,当我从internet下载一些开源软件并键入“/configure&&make&&makeinstall”时,它就可以正常工作了。我希望能够创建“正常工作”的配置脚本,这样用户就不必在运行脚本之前摆弄和设置环境变量。也许有一些实践可以为我的配置脚本添加一些半标准的搜索路径。在最好的世界里,这正是自动工具等应该做的,但我能理解这不是最好的世界,这是一个移动的目标…只是为了确保。。。您建议的解决方案(“…将/usr/local/lib添加到标准列表…”)和(…“将路径放在库中”\u环境中的路径”…)这是必须在安装我的软件的机器上执行的操作,对吗?我无法控制这台机器,因为它可能是任何用户想要安装我的软件的机器。