[英]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.