Static libraries TAO 1.6a-如何创建.a库?

Static libraries TAO 1.6a-如何创建.a库?,static-libraries,aix,corba,ace,tao,Static Libraries,Aix,Corba,Ace,Tao,我在AIX5.3中构建了从OCI下载的TAO1.6a。我是成功的。但是,我只能看到$ACE_ROOT/lib中的.so文件。如何构建它以获取.a文件?我已经建立了1.5a版本,它给了我.a文件。有牌子吗?请给我样品 谢谢。TAO1.5及更高版本为每个库生成.a(存档库文件)。 例如:libTAO.a、libTAO\u CosNaming.a、libTAO\u PortableServer.a、libTAO\u AnyTypeCode.a 我认为所有库都放在归档文件中的原因是库名称与默认名称相同,

我在AIX5.3中构建了从OCI下载的TAO1.6a。我是成功的。但是,我只能看到$ACE_ROOT/lib中的.so文件。如何构建它以获取.a文件?我已经建立了1.5a版本,它给了我.a文件。有牌子吗?请给我样品


谢谢。

TAO1.5及更高版本为每个库生成.a(存档库文件)。 例如:
libTAO.a、libTAO\u CosNaming.a、libTAO\u PortableServer.a、libTAO\u 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\u CosNaming.so、libTAO\u PortableServer.so、libTAO\u AnyTypeCode.so

而且,这些库不会放在归档文件(.a)中。这就是为什么我在
$ACE\u ROOT/lib
中找不到“.a”文件的原因

如果要为所有库创建.a文件,请执行以下步骤。 我不知道是否还有更简单的方法。如果是,请在这里分享

$ACE\u ROOT/lib
中,所有.so文件都从其原始项目目录进行符号链接

那么,从哪里找到答案。我将使用
libACE.so
作为示例

$cd ACE_ROOT/lib
$ls -lrt libACE.so
--> libACE.so -> ../ace/libACE.so.5.6a_p13
好的,现在,我知道文件的来源,我会去那里

$cd ../ace
创建一个文件并将源文件放入其中。 用法-“ar-rv archivelibname.a sourcelibname”

然后返回$ACE_ROOT并对.a文件进行符号链接

$cd $ACE_ROOT/lib
$ln -sf ../ace/libACE.a libACE.a
就这些。但是,您必须为所有库执行这些步骤,这很累人

编辑:我只是不知道-brtl


使用-brtl参数编译项目,它们将很好地与.so库配合使用。

1.6a版本非常旧,请使用TAO 2.1.3,TAO用户邮件列表是一个比在AIX上的StackOverflow更好的查询位置。与.so和.a没有区别。只是惯例@CoreyStup啊,对不起,我完全没有阅读问题的AIX部分。@JohnnyWillemsen我从www.theaceorb.com下载的。我下载了2012年1月6日发布的补丁13。所以,我认为它不是很旧。补丁不旧,但是原始版本很旧,在TAO的完全开源版本中有很多改进。从中获得2.1.3版本,这确实更加稳定和经过测试
$cd $ACE_ROOT/lib
$ln -sf ../ace/libACE.a libACE.a