libtoolize:错误:无法列出文件

Posted

技术标签:

【中文标题】libtoolize:错误:无法列出文件【英文标题】:libtoolize: error: cannot list files 【发布时间】:2015-09-30 18:43:11 【问题描述】:

我在安装 libtool 2.4.6 时遇到了以下问题:

libtool: Version mismatch error.  This is libtool 2.4.6, revision 2.4.6,
libtool: but the definition of this LT_INIT comes from revision .
libtool: You should recreate aclocal.m4 with macros from revision 2.4.6
libtool: of libtool 2.4.6 and run autoconf again.
Makefile:1261: recipe for target 'libltdl/loaders/libltdl_libltdl_la-preopen.lo' failed

为了解决这个问题,在谷歌上四处查看后,我执行了以下命令来重新创建 aclocal.m4。但是,我收到“无法列出文件”错误:

[server]#  autoreconf --install
libtoolize:   error: cannot list files: '/var/tmp/work/libtool-2.4.6.i386/share/libtool/build-aux'
autoreconf: libtoolize failed with exit status: 1

目录在那里,可以用 ls 命令列出:

[server]#  ls -l /var/tmp/work/libtool-2.4.6.i386/share/libtool/build-aux
total 0

有什么想法吗?

【问题讨论】:

这是一个 perl 程序。你只是省略了最重要的一行。第 339 行是什么以及如何调用该子程序?(类似于sub function 无论如何,这不会改变您的权限被拒绝的事实。我猜你需要sudo autoreconf --force --install 感谢您的信息。以 root 身份登录后,我能够克服权限问题。但现在我得到了:# autoreconf --install libtoolize: 错误:无法列出文件:'/var/tmp/work/libtool-2.4.6.i386/share/libtool/build-aux' autoreconf: libtoolize failed with exit status: 1 # ls -l /var/tmp/work/libtool-2.4.6.i386/share/libtool/build-aux 总计 0 照我说的做,使用sudo。登录su 和使用sudo 有细微的差别,可能会或可能不会影响它 在我们的 Solaris 环境中,我们没有安装 sudo 也没有 RBAC。我们只有普通的 root 访问权限...我删除了整个以前的 libtool 源目录并以 root 用户身份重新开始。我认为这应该保证一致性。是什么导致了这个问题? 【参考方案1】:

这是由 libtoolize 脚本中的行引起的:

        test -n "` cd $my_dir && ls;  2>/dev/null`" \
            || func_fatal_error "cannot list files: '$my_dir'"

我不知道为什么它将空目录解释为“无法列出文件” 可以通过将上面的行替换为:

    cd $my_dir && ls || func_fatal_error "cannot list files: '$my_dir'"

【讨论】:

以上是关于libtoolize:错误:无法列出文件的主要内容,如果未能解决你的问题,请参考以下文章

无法识别 libtool 和 autoconf 的 LT_VERSION

无法使 libtool 合并 yasm 创建的目标文件

Libtool 为对象添加前缀,但 gcov 要求它们不带前缀

我收到此错误,无法映射文件列表文件

libtool 在 XCode 4.3 上失败,退出代码为 1

Cordova iOS 构建 Libtool 失败错误