Что такое "переигровка" предупреждения?
Во время компиляции mpich
Я получил несколько relinking
предупреждения...
libtool: warning: relinking 'lib/libmpicxx.la'
Я не смог выяснить, что они означают, погуглив сообщение об ошибке. Что такое relinking
? Почему это вызвано и как я могу избавиться от этого?
1 ответ
Предупреждение о повторном связывании выдается при установке, а не при компиляции. Libtool предупреждает вас, что во время установки выполняется потенциально медленная команда. Причины повторного связывания могут быть разными.
В случае mpich
Причина совершенно безобидна. libmpicxx
библиотека зависит от libmpi
библиотека. Оба построены из одного источника. Libtool гарантирует, что если вы запустите любой исполняемый файл в каталоге сборки, он будет использовать библиотеки из каталога сборки, а не установленную библиотеку.
Нет никакого способа убедиться (по крайней мере, в Linux), что libmpicxx
будет использовать локально построенный libmpi
библиотека без жесткого кодирования пути поиска библиотеки (так называемый RPATH) в libmpicxx
,
Для установленных библиотек требуется, чтобы они никогда не ссылались на дерево сборки, в котором они были собраны. Таким образом, RPATH должен быть исключен из установленного libmpicxx
библиотека. Это делается путем перекомпоновки.
Еще раз, предупреждение не о вас или о том, что пакет делает что-то неправильно, а о потенциально медленной операции на этапе установки (ожидаются медленные операции на этапе сборки и предупреждение не требуется).