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 为对象添加前缀,但 gcov 要求它们不带前缀