TAO 1.6a-如何制作.a库



我在AIX 5.3中构建了从OCI下载的TAO 1.6a。我是成功建造的。但是,我只能在$ACE_ROOT/lib中看到.so文件。如何构建它来获取.a文件?我已经建立了1.5a版本,它给了我.a文件。有标志牌吗?请给马样品。

谢谢。

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)中。这就是为什么我在$ACE_ROOT/lib中找不到".a"文件的原因。

如果要为所有库创建.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

创建一个文件,并将源代码放入其中。用法-"ar-rv archivelibname.asourcelibname"

$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库配合使用。

相关内容

  • 没有找到相关文章

最新更新