[英]Undefined symbol “tbb internal Allocate” when loading shared library
一些使用我的共享庫的人在加載它時遇到問題。 我已經告訴他們安裝這里所說的“gcc-libs”。
我還告訴他們自己編譯共享庫,但沒有運氣。
這個問題還有其他解決方案嗎?
這是程序中的一個日志文件,它試圖在CentOS6上加載插件:
[23:16:57] Failed (plugins/RouteConnectorPlugin.so: undefined symbol: _ZN3tbb8internal12NFS_AllocateEjjPv)
[23:16:57] Loading plugin failed: RouteConnectorPlugin.so
該程序是開源的,位於此處 ,它是用C和C ++混合編寫的(程序僅針對x86編譯)。
如果您的共享庫依賴於另一個共享庫,則應該鏈接它。 然后,當您的庫鏈接到其他可執行文件/共享庫時,將自動加載依賴項,並且用戶不需要顯式鏈接該依賴項。
未定義的符號是
$ c++filt _ZN3tbb8internal12NFS_AllocateEjjPv
tbb::internal::NFS_Allocate(unsigned int, unsigned int, void*)
這可能來自你提到的intel-tbb庫。 因此,代碼用戶的依賴關系要求您通過將其鏈接到庫中來正確聲明該依賴關系。
請參閱此答案 ,了解如何使用GCC執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.