什么是`relinking`警告?

时间:2015-04-15 19:51:35

标签: build compilation linker libtool

在编译mpich时,我收到了一些relinking警告......

libtool: warning: relinking 'lib/libmpicxx.la'

我无法通过Google搜索错误消息找出这些含义。什么是relinking?为什么会引起它?我怎么能摆脱它呢?

1 个答案:

答案 0 :(得分:9)

安装时会发出“重新链接”警告,而不是在编译时发出。 Libtool警告您,它在安装过程中运行的命令可能很慢。重新安排可能有不同的原因。

如果是mpich,原因完全是无害的。 libmpicxx库取决于libmpi库。两者都是从同一个来源构建的。 Libtool确保如果您在构建目录中运行任何可执行文件,它将使用构建目录中的库而不是已安装的库。

没有办法确保(至少在Linux上)libmpicxx将使用本地构建的libmpi库而不将库搜索路径(所谓的RPATH)硬编码到libmpicxx

对于已安装的库,要求是它们永远不会引用构建它们的构建树。因此需要从已安装的libmpicxx库中删除RPATH。这是通过重新链接来完成的。

再一次,警告不是关于你或包做错了什么,而是关于安装阶段的潜在缓慢操作(预期在构建阶段的运行缓慢而且不需要警告)。