Мой файл .la
имеет полные пути как в разделе dependency_libs=
, так и в разделе libdir=
, что затрудняет копирование моих библиотек на другую машину (та же арка, но другая структура пути). Каково решение этой проблемы, кроме того, что есть какой-то скрипт для взлома файла .la
для настройки путей на новой машине?
==Подробности==
Когда я ./configure; make; make install
libfoo
, в зависимости от того, как я использую флаги --prefix
, --exec-prefix
и DESTDIR=
, я получу запись в файле libfoo.la
, которая читает libdir=/dir1/lib
, и у меня будут фактические файлы .so
в том же каталоге, что и libfoo.la
. Все хорошо (с точки зрения связывания чего-то с libfoo
как есть), пока я не упакую их и не поставлю на другую машину.
Допустим, у меня есть libbar
на моей второй машине, которая зависит от libfoo
. Когда я использую свой флаг -L/dir2/lib
для поиска -lfoo
, компиляция/связывание libbar
терпит неудачу, потому что файл libfoo.la
ожидает установки foo в /dir1/lib
(с первой машины), хотя на самом деле он находится в /dir2/lib
. Затем мне нужно заменить все dir1
на правильный путь, оба из которых могут быть длинными и сложными.
Линия dependency_libs=
также вступает в игру аналогичным образом.
Как избежать этой проблемы?
.la
. - person amaslenn   schedule 12.08.2018