TAO 1.6a - Как сделать библиотеки.a?

Я собрал TAO 1.6a, скачанный из OCI в AIX 5.3. Я был построен успешно. Однако я мог видеть только файлы.so в $ACE_ROOT/lib. Как построить его, чтобы получить.a файлы? Я построил версию 1.5a, и он дал мне файлы.a. Есть ли флаг марки? Пожалуйста, дайте ма образец.

Спасибо.

1 ответ

Решение

TAO1.5 и более ранние версии создают.a (файл архивной библиотеки) для каждой библиотеки. Например: libTAO.a, libTAO_CosNaming.a, libTAO_PortableServer.a, libTAO_AnyTypeCode.a

Я думаю, почему все библиотеки помещаются в архивные файлы, потому что имена библиотек совпадают с именами по умолчанию, "shr.o",

Дело в том, что все имена библиотек одинаковы, но отличаются только имена архивов.

Например:

Archive Name            Library Name
------------            ------------
libTAO.a                  shr.o
libTAO_CosNaming.a        shr.o
libTAO_PortableServer.a   shr.o
libTAO_AnyTypeCode.a      shr.o         

Но TAO1.6 и более новые версии производят библиотеки с разными именами. Например: libTAO.so, libTAO_CosNaming.so, libTAO_PortableServer.so, libTAO_AnyTypeCode.so

И эти библиотеки не помещаются в архивные файлы (.a). Вот почему я не могу найти ".a" файлы внутри $ACE_ROOT/lib,

Если вы хотите создать файлы.a для всех библиотек, выполните следующие действия. Я не знаю, есть ли более простые способы. Если это так, пожалуйста, поделитесь здесь.

В $ACE_ROOT/libвсе.so файлы символически связаны с оригинальными каталогами проекта.

Итак, выясни откуда. я сделаю libACE.so как пример.

$cd ACE_ROOT/lib
$ls -lrt libACE.so
--> libACE.so -> ../ace/libACE.so.5.6a_p13

хорошо, теперь, я знаю источник файла и пойду туда.

$cd ../ace

создайте файл.a и поместите в него исходный код. использование - "ar -rv archivelibname.a sourcelibname"

$ar -rv libACE.a libACE.so.5.6a_p13

и вернитесь к $ACE_ROOT и установите символическую ссылку на файл.a

$cd $ACE_ROOT/lib
$ln -sf ../ace/libACE.a libACE.a

Это все. Но вы должны сделать эти шаги для всех библиотек, и это утомительно.

Редактировать: я просто не знал -brtl

Компилируйте проекты, используя параметр -brtl, и они будут хорошо работать с библиотеками.so.

Другие вопросы по тегам