0

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

谢谢你。

4

1 回答 1

0

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 中找到“.a”文件的原因$ACE_ROOT/lib

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

$ACE_ROOT/lib.so 文件中,所有 .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 库一起工作。

于 2012-08-02T06:12:05.770 回答