首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TAO 1.6a -如何制作.a库?

TAO 1.6a -如何制作.a库?
EN

Stack Overflow用户
提问于 2012-08-02 11:13:40
回答 1查看 555关注 0票数 0

我在AIX5.3中从OCI下载构建了TAO1.6a。我被成功地造出来了。但是,我只能在$ACE_ROOT/lib中看到.so文件。如何构建它来获取.a文件?我已经构建了1.5a版本,它给了我.a文件。有make标志吗?请给我样品。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-02 14:12:06

TAO1.5和更早的版本为每个库生成.a (档案库文件)。例如:libTAO.a, libTAO_CosNaming.a, libTAO_PortableServer.a, libTAO_AnyTypeCode.a

我认为为什么所有的库都放在归档文件中,是因为库的名称与默认的"shr.o"相同。

事实上,所有的库名称都是相同的,但只有归档名称不同。

例如:

代码语言:javascript
复制
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为例。

代码语言:javascript
复制
$cd ACE_ROOT/lib
$ls -lrt libACE.so
--> libACE.so -> ../ace/libACE.so.5.6a_p13

好了,现在,我知道了文件的来源,并将转到那里。

代码语言:javascript
复制
$cd ../ace

创建.a文件并将源代码放入其中。用法- "ar -rv archivelibname.a sourcelibname“

代码语言:javascript
复制
$ar -rv libACE.a libACE.so.5.6a_p13

并返回到$ACE_ROOT并符号链接.a文件

代码语言:javascript
复制
$cd $ACE_ROOT/lib
$ln -sf ../ace/libACE.a libACE.a

就这样。但是,你必须为所有的库做这些步骤,这是很累人的。

编辑:我只是不知道-brtl

使用-brtl参数编译项目,它们将与.so库一起很好地工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11770540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档