簡體   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