2015-04-15 11 views
4

При составлении mpich, я получил несколько relinking предупреждения ...Что такое предупреждение «relinking»?

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

Я не был в состоянии выяснить, что это значит, прибегая к помощи сообщение об ошибке. Что такое relinking? Почему это вызвано и как я могу избавиться от него?

+0

Вы пытаетесь связать одну и ту же библиотеку дважды в один двоичный файл. –

+0

Итак, он создает мертвый код в двоичном формате? Соответствует ли компоновщик этому? –

ответ

4

Предупреждение о «повторении» испускается при установке, а не при компиляции. Libtool предупреждает вас, что во время установки он запускает потенциально медленную команду. Могут быть разные причины для повторного использования.

В случае mpich причина совершенно безобидная. Библиотека libmpicxx зависит от библиотеки libmpi. Оба они построены из одного источника. Libtool гарантирует, что если вы запустите любой исполняемый файл в каталоге сборки, он будет использовать библиотеки из каталога сборки, а не установленной библиотеки.

Там нет никакого способа, чтобы убедиться, что (по крайней мере на Linux), что libmpicxx будет использовать локально построенную libmpi библиотеку без жесткого кодирования пути поиска библиотек (так называемый RPATH) в libmpicxx.

Для установленных библиотек необходимо, чтобы они никогда не ссылались на дерево сборки, где они были построены. Таким образом, RPATH необходимо исключить из установленной библиотеки libmpicxx. Это делается путем его повторного использования.

Опять же предупреждение не о вас или о пакете, которое делает что-то неправильно, речь идет о потенциально медленной работе на этапе установки (ожидаются медленные операции на этапе сборки и не требуются предупреждения).

Смежные вопросы