首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标SharedLib与目标符号和目标条的区别

目标SharedLib与目标符号和目标条的区别
EN

Stack Overflow用户
提问于 2014-10-18 13:22:59
回答 1查看 378关注 0票数 4

我为android编译了libhuaweigeneric库,并生成了三个文件:

  • 目标libhuaweigeneric-ril(.../LINKED/libhuaweigeneric-ril.so):SharedLib
  • 目标符号:libhuaweigeneric泛型-ril (.../symbols/system/lib/libhuaweigeneric-ril.so)
  • 目标地带:libhuaweigeneric(./lib/libhuawegen-ril.so)

有人能解释一下这些文件是什么吗?哪个是android(system/lib/)?

EN

回答 1

Stack Overflow用户

发布于 2014-12-12 16:30:46

我还没有尝试编译这个库,但是根据我对UNIX系统的知识和经验,我可以向您提供一些信息。

基本上,共享库是一个由程序(或应用程序)在运行时加载的库。它允许程序通过调用共享库中包含的函数来执行额外的操作。

第一个文件是库的standart版本。它包含在您编译的源文件中声明的所有符号(函数和变量)。

第二个文件是第一个文件(或第三个文件)上的符号链接,这在Unix系统上是很常见的。在创建共享库时,通常使用版本号(例如'awesomelib.so.1.0')创建它,并创建一个具有指向它的通用名称的符号链接(在我们的示例中是‘awesomelib.so’)。由于共享库注定要在运行时加载,如果使用包含版本号的名称在代码中引用它,则需要在每次库更新时更新代码。但是,如果使用符号链接名,则无需在每次库更新时修改代码,我们只需更新符号链接,使其指向libray的新版本。

最后,第三个文件是第一个文件的剥离版本。剥离意味着从第一个文件中删除了一些符号(调试信息或未使用的函数或变量),以便使库更轻松。

在您的例子中,由于您的库中没有版本号,我建议您在开发时使用第一个版本号,在应用程序的发布版本中使用第三个版本号。

以下是更多信息的链接:

关于共享库文件格式(elf)

脱衣舞

希望能帮上忙!

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

https://stackoverflow.com/questions/26440202

复制
相关文章

相似问题

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