我正在使用本機庫與我的Android Studio項目。我正在嘗試使用net-snmp,它是一個C庫(不幸的是,這是一個必備項目,我不能使用替代品,因爲有一個更大的本地庫依賴於此)。我們已經將這些文件編譯成.so文件,並且正確地完成了這些工作(據我所知,無論如何編譯都沒有錯誤)。Android NDK中的頭文件的未定義符號錯誤
但是,每當試圖加載這些庫,我得到以下錯誤:java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "endgrent" referenced by "libnetsnmp.so"...
此功能是grp.h
包含在Android的NDK的每一個版本。這裏是Android.mk文件的relavent部分:
include $(CLEAR_VARS)
LOCAL_MODULE := NetSNMP
LOCAL_SRC_FILES := net-snmp/libnetsnmp.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/net-snmp/include
include $(PREBUILT_SHARED_LIBRARY)
我有點新NDK,但我發現了一個未定義符號錯誤通常是指它是無法找到相應的文件夾。據我所知,這應該由Android NDK引入。我在這裏做錯了什麼?這只是一些與makefile無關的錯誤?
更新:即使在嘗試將grp.h文件移至包含的include之後,仍然會發現相同的錯誤。