繁体   English   中英

静态和共享库链接器错误

[英]Static and shared libraries linker error

我正在使用NDK(适用于Android的本地编译器工具)。 因此,情况如下所示:

Static boost → Shared helpers
                       ↓
                  Shared Game

Helpers是一些用于游戏开发的共享库。 共享game是一个包含在Java代码中的库(作为本机库加载)。 助手库正在内部使用boost,链接器在这里很好。 共享游戏通过助手API使用Boost,但编译失败。

链接器无法解析boost_system库中的某些符号。 所以,我确实是这样的:

Static boost → Shared helpers
     |                  ↓
     +----------- → Shared Game

现在它可以编译了。 怎么了? 我以为我可以将一次Boost链接到助手中,并在共享游戏中使用它们。

没有错误。 如您所说,您希望shared game仅使用shared helpers API,该API由shared helpers动态库导出。 您的错误是, shared game仍然依赖一些裸露的Boost API,而这些API显然不是shared helpers导出的。 这就是为什么您也必须将Boost显式链接到shared game ,以便正确解析这些Boost符号。

如果您想完全从Boost API中抽象出来并消除这种依赖关系,那么您就必须通过扩展shared helpers来包装Boost API(在shared game需要)(当然,不要忘记从中导出此包装的 API) shared helpers )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM