libtool: 链接: 警告: .../libstdc++.la 似乎已被移动

7

我一直在收到这种形式的警告(为了易读性添加了换行符):

libtool: link: warning: `/usr/local/gcc-5.2.0/lib/gcc/x86_64-unknown-linux-gnu/
    5.2.0/../../../../lib64/libstdc++.la' seems to be moved

我一直无法弄清楚为什么会出现警告,也不确定这个警告是否相关。请注意,这两个路径解析到同一个位置。

1个回答

4
原来,自定义安装的gcc-5.2.0安装了一个带有以下“libdir”行的libstdc++.la:
libdir='/usr/local/gcc-5.2.0/lib/../lib64'

但是当libtool链接到libstdc++.la时,它使用警告中报告的路径(这也恰好是g++ --print-search-dirs输出的一部分 - 这可能有关)。解决方法是将libstdc++.la中的libdir值更改为libtool搜索libstdc++.la的确切路径:
libdir='/usr/local/gcc-5.2.0/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../lib64'

显然,libtool不会对路径进行规范化或规范化处理,并将它们作为字符串进行比较,因此会出现错误。另请参见2006年libtool邮件列表中的相关线程


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接