我在 AIX 5.3 中构建了从 OCI 下载的 TAO 1.6a。我构建成功。但是,我只能在 $ACE_ROOT/lib 中看到 .so 文件。如何构建它以获取 .a 文件?我已经构建了 1.5a 版本,它给了我 .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) 中。这就是为什么我无法在 .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 库一起工作。