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

标签 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

并且无法弄清楚警告为什么或是否相关。请注意,两条路径都解析为相同的位置。

最佳答案

原来,gcc-5.2.0 的自定义安装安装了一个 libstdc++.la,其内容如下 libdir线:

libdir='/usr/local/gcc-5.2.0/lib/../lib64'

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

修复方法是更改​​ libdir值在 libstdc++.lalibstdc++.la 的确切路径由 libtool 搜索:
libdir='/usr/local/gcc-5.2.0/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../lib64'

显然,libtool 不会规范化或规范化路径并将它们作为字符串进行比较,从而导致错误。另见 a related thread on the libtool mailing list from 2006 .

关于libtool: 链接: 警告: .../libstdc++.la 似乎被移动了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33940740/

相关文章:

c - Autotools库中没有符号

Libtool 正在丢弃 `-static` 标志

linux - 无法加载库搜索路径上存在的共享库

c - libpipeline 在 Mac OS X 上编译失败

go - ltdl.h 构建链代码时未发现错误

gnu - Make distcheck 不会复制所有来源

shared-libraries - 使用 GNU libtool 创建静态库和共享库?

Autotools:应该将 config.guess、depcomp 或 ltmain.sh 存储在 SVN 存储库中吗?

c - 如何静态编译lighttpd模块