首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LOCAL_LDLIBS对LOCAL_LDFLAGS

LOCAL_LDLIBS对LOCAL_LDFLAGS
EN

Stack Overflow用户
提问于 2014-03-12 14:05:46
回答 2查看 15.3K关注 0票数 8

Android指南将Adnroid.mk中的两个变量解释如下:

LOCAL_LDLIBS -在构建共享库或可执行文件时使用的附加链接器标志列表。 ..。

LOCAL_LDFLAGS -在构建共享库或可执行文件时使用的其他链接器标志的列表。 ..。

那这两者有什么区别呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-12 14:30:59

目前可能没有功能上的差异(或者这是文档中的一个小错误),但其意图(根据这类变量的长期命名传统)是:

  • LOCAL_LDLIBS将指定库,或者至少指定要链接到结果的对象。
  • LOCAL_LDFLAGS将为链接器指定其他配置选项。
票数 5
EN

Stack Overflow用户

发布于 2014-03-14 09:49:01

主要区别如下:

  • LOCAL_LDFLAGS出现在最终链接器命令行中的对象文件和库列表之前,这是要放置影响链接器行为的实际“标志”的地方。
  • LOCAL_LDLIBS出现在最终链接命令行中的对象文件和库列表之后,这是您想要放置实际系统库依赖项的地方。

之所以存在这种区别,是因为静态链接在Unix上的工作方式,即对象文件、静态库和共享库的顺序对于确定最终结果非常重要,有时您确实需要确保在另一个结果之前/之后出现一些内容。

最后,我建议遵循这些文件,即:

  • 将真正的链接器标志放入LOCAL_LDFLAGS
  • 将系统库依赖项放入LOCAL_LDLIBS中
  • 仅对系统库依赖项使用LOCAL_LDLIBS。如果您想指向另一个库,最好在LOCAL_STATIC_LIBRARIES和LOCAL_SHARED_LIBRARIES中列出它们(即使这意味着为它们定义一个PREBUILT_XXX模块),因为这样可以让构建系统自动为您处理依赖关系和排序。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22354041

复制
相关文章

相似问题

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