2015-09-01 25 views
1

我正在開發一個具有本機C的Android應用程序是核心處理。我使用NDKr10從本地代碼和成功構建庫。但是,當我嘗試加載庫則顯示的錯誤:無法加載庫soinfo_relocate(linker.cpp:975):無法找到「libvlfeat.so」引用的符號「log2f」

Cannot load library soinfo_relocate(linker.cpp:975): cannot locate symbol "log2f" referenced by "libvlfeat.so"...

我發現了一些資源說,通過gcc編譯器和Android版本的目標造成這個錯誤,但我不知道這件事。 (我的目標SDK是21)。

更新:我的應用在api 21設備上工作正常,但顯示錯誤的較低版本。

有人知道這個問題嗎?請給我一個解決方案來解決這個問題。

謝謝。

+0

嗨Vuong,你有沒有設法解決這個問題? –

回答

0

您必須按照解析它們之間的依賴關係的順序加載.so庫。也就是說,您必須對加載順序進行硬編碼。

有關Android.mk的一些知識可能會發現here,herehere。 (但是,如果你的項目編譯成功,你的Android.mk很有可能工作。)

有一個問題,那麼libs/armeabilibs/armeabi-v7a中的庫不會合並。也就是說,如果只有armeabi版本中有一些預編譯的庫,則編譯armeabi-v7a庫時沒有用處(因爲預編譯的armeabi庫不會被找到)。

+0

我只是測試我的應用程序,它在api 21設備上工作正常,但顯示錯誤的較低版本。 –

相關問題