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

Irf*_*rfy 5 libtool

我收到了很多关于这种形式的警告(为提高可读性添加了换行符):

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
Run Code Online (Sandbox Code Playgroud)

并且无法弄清楚该警告的原因或相关性。请注意,两个路径都解析到同一位置。

Irf*_*rfy 4

事实证明,gcc-5.2.0 的自定义安装安装了一个 libstdc++.la,其中包含以下libdir行:

libdir='/usr/local/gcc-5.2.0/lib/../lib64'
Run Code Online (Sandbox Code Playgroud)

但是当 libtool 链接到 时libstdc++.la,它使用警告中报告的路径(这也恰好是g++ --print-search-dirs输出的一部分 - 这可能是相关的)。

修复方法是将libdir值更改为libtool 搜索到的libstdc++.la确切路径:libstdc++.la

libdir='/usr/local/gcc-5.2.0/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../lib64'
Run Code Online (Sandbox Code Playgroud)

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