android - 链接使用 c++_static 构建的两个库
问题描述
在以下网页中,
https://developer.android.com/ndk/guides/cpp-support
它指出,编译两个库(libA.so、libB.so)c++_static
打破了单一定义规则,其中将为不同库中的 c++ 函数定义多个符号。这种情况是未定义的行为,可能会出现多个错误。
但是,我不知道在以下情况下是否也会发生这种情况:
- 我编译
libA.a
链接的 agsintc++_static
- 然后我编译
libB.so
并链接c++_static
到libA.a
在这种情况下,问题不会发生,将共享库与静态库链接是安全的,对吗?还是libc++
嵌入的符号libA.a
?
解决方案
这是安全的。事实上,既libA.a
不会也libB.a
不会与libc++
. 静态库不与它们的依赖关系链接 - 这是在链接使用这些库的可执行文件/共享对象时完成的。
唯一libc++
会出现在这两个静态库中的代码将是来自标头的(内联)代码。这不是问题。
推荐阅读
- azure - 使用 CLI 列出所有 azure 订阅中的所有虚拟机
- android - Backpress 错误图标上的底部导航视图
- java - 强制转换 activemqObjectMessage 时出现 ClassCastException
- c# - 如何在 C# Asp.Net 中从 JSON 结果字符串中检索值
- oauth - OAuth 同意屏幕验证
- reactjs - 在 React Native 中使用 useState 更改文本颜色
- python - Python:密码学 Fernet:减少生成的加密文本的长度
- python - 在 Tkinter 中的函数之外附加列表
- ajax - user_session 不工作(Codeigniter,Ajax)
- javascript - 在ajax中成功登录后未重定向登录弹出窗口