Bar*_*uch 7 android android-ndk
Android NDK指南解释了以下两个变量Adnroid.mk:
LOCAL_LDLIBS - 构建共享库或可执行文件时要使用的其他链接器标志的列表.
...
LOCAL_LDFLAGS - 构建共享库或可执行文件时要使用的其他链接器标志的列表.
...
那么这两者有什么区别?
主要区别如下:
LOCAL_LDFLAGS出现在最终链接器命令行上的目标文件和库列表之前,这是您要放置影响链接器行为的实际"标志"的位置.
LOCAL_LDLIBS出现在最终链接命令行上的目标文件和库列表之后,这是您希望放置实际系统库依赖项的位置.
由于静态链接在Unix上的工作方式存在差异,即目标文件,静态库和共享库的顺序对于确定最终结果非常重要,有时您确实要确保某些内容出现在另一个之前/之后.
最后,我建议遵循文档,即:
将真正的链接器标志放入LOCAL_LDFLAGS
将系统库依赖项放入LOCAL_LDLIBS
仅将LOCAL_LDLIBS用于系统库依赖项.如果要指向另一个库,最好将它们列在LOCAL_STATIC_LIBRARIES和LOCAL_SHARED_LIBRARIES中(即使这意味着为它们定义PREBUILT_XXX模块),因为这样可以让构建系统自动为您计算依赖关系并自动排序.
目前可能没有功能差异(或者这是文档中的一个小错误),但意图(根据这种类型的命名变量的长期传统)是:
LOCAL_LDLIBS将指定库或至少要链接到结果中的对象
LOCAL_LDFLAGS将为链接器指定其他配置选项
| 归档时间: |
|
| 查看次数: |
12903 次 |
| 最近记录: |