android - 安卓标签库

标签 android c android-ndk taglib

我正在尝试为 Android 编译 Taglib。我已经下载了最新版本 标签库来自here .在为 arm-linux 构建编译它之后,我已经成功地将它导入到我的应用程序中,但是当我尝试从 tag_c.h 调用任何函数时,我收到以下错误:

SharedLibrary  : taglibwav.so
/home/test/workspacenew/Androidtaglibexample/obj/local/armeabi/
objs/squared/taglibwav.o: In function 
`Java_com_android_androidtag_WavFileDetails_taglibwav':
/home/test/workspacenew/Androidtaglibexample/jni/taglibwav.c:30: 
undefined reference to `taglib_set_strings_unicode'
collect2: ld returned 1 exit status
make: *** [/home/test/workspacenew/Androidtaglibexample/obj/
local/armeabi/taglibwav.so] Error 1

应用配置信息为:

标签库 ./configure :-

./configure CC="/home/hcl/taglib/taglib/toolchain/bin/arm-linux-androideabi-gcc"\
--host="arm-linux" \
--build="arm" \
--enable-static="no" \
--enable-shared="yes" \
--prefix="/home/test/workspacenew/Androidtaglibexample/jni/testtaglib/"\

Android.mk :-

LOCAL_PATH := $(call my-dir)

#declare the prebuilt library
include $(CLEAR_VARS)
LOCAL_MODULE := taglibtest
LOCAL_SRC_FILES := testtaglib/lib/libtag.a
LOCAL_EXPORT_C_INCLUDES := testtaglib/include/taglib/
LOCAL_PRELINK_MODULE := true
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS) 
include $(call all-subdir-makefiles)
LOCAL_MODULE := taglibwav
LOCAL_SRC_FILES := taglibwav.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/testtaglib/include/taglib/
LOCAL_SHARED_LIBRARY := taglibtest
LOCAL_LDLIBS    := -llog -ljnigraphics -lz -lm -L$(SYSROOT)/usr/lib -llog 
include $(BUILD_SHARED_LIBRARY)


Application.mk :-

APP_ABI :=armeabi
APP_STL:=stlport_static


taglibwav.c :-

#include <jni.h>
#include <tag_c.h>
#include <android/log.h>
#ifndef FALSE
#define FALSE 0
#endif
.......
.......
JNIEXPORT void JNICALL Java_com_android_androidtag_WavFileDetails_taglibwav
  (JNIEnv * ev, jclass jc){
      int i;
      int seconds;
      int minutes;
      TagLib_File *file;  //<< accessed form tag_c.h : OK
      TagLib_Tag *tag;    //<< accessed form tag_c.h : OK
      const TagLib_AudioProperties *properties; //<<accessed form tag_c.h : OK
      taglib_set_strings_unicode(FALSE);//<<accessed form tag_c.h : GETTING ERROR
}
....
....

Android NDK 版本:- Android-Ndk-r7c

请指导我正确的方向来解决我做错的事情

最佳答案

我想你可能需要 -ltag_c 在某个地方

关于android - 安卓标签库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15887838/

相关文章:

c++ - 没有进位标志的大整数加法

c - 为什么我得到的返回值为 -1 (0xFFFFFFFF)?

android - 包含 .so 文件时减小 APK 的大小

android - 需要分析来自 Android Wear 的数据

android - 无法从 https ://jcenter. bintray.com/org/webkit/android-jsc/maven-metadata.xml 加载 Maven 元数据 react 原生问题

android - 创建自定义开关

android - 为什么第二个代码可以安全地在 map 中进行网络调用,因为它已被缓存?

c - 为什么我可以在不包含 ctype.h 的情况下进行链接

Android 应用程序因 protobuf 而崩溃

android - Android 中的本地主机