AIX — не устанавливает общую библиотеку

Я могу успешно построить общий объект, используя священный собственный компилятор "xlc" в AIX. Он создает библиотеку общих объектов, но не устанавливает библиотеку общих объектов.

Команда конфигурации: ./configure --prefix=/PATH/to/install --exec-prefix=/PATH/to/install --enable-shared --enable-static=no --enable-module=so -- build=powerpc-ibm-aix5.3.0.0 --host=powerpc-ibm-aix5.3.0.0 LDFLAGS="-G -shared"

Любая помощь будет оценена?


person kadeshpa    schedule 16.10.2009    source источник


Ответы (3)


Итак, вы пытаетесь скомпилировать в папку с общей библиотекой.

Я бы посоветовал посмотреть, можете ли вы скомпилировать/связать с вашим локальным каталогом.

Если это работает, попробуйте скопировать новую библиотеку в правильный каталог. Возможно, старая общая библиотека открыта каким-то процессом и поэтому не может быть перезаписана.

Вы получаете сообщения об ошибках?

person EvilTeach    schedule 17.10.2009

Я смог успешно установить разделяемую библиотеку, когда мне пришлось экспортировать LDFLAGS исключительно как «-brtl -L/path/to/install».

person kadeshpa    schedule 27.10.2009
comment
да, это убирает путь с имени. - person EvilTeach; 28.05.2010

В AIX существует два типа совместно используемых библиотек: библиотеки в стиле AIX и совместимые библиотеки SysV.

Библиотеки в стиле AIX — это архивы, которые могут содержать статические библиотеки, а также несколько версий совместно используемых библиотек и иметь такие имена, как libFOO.a.

SysV-совместимые библиотеки имеют такие имена, как libFoo.so, и больше похожи на то, что вы найдете в Linux.

Libtool построит любой тип. Если вам нужны библиотеки, совместимые с SysV, добавьте -Wl,-brtl в LDFLAGS.

Я предполагаю, что вы видите /PATH/to/install/lib/libFOO.a и предполагаете, что это статическая библиотека, хотя на самом деле это совместно используемая библиотека AIX.

person Robert Boehne    schedule 26.10.2012