gpt4 book ai didi

android - 无法链接到 jni/ndk 共享库中的 libjpeg.so

转载 作者:太空狗 更新时间:2023-10-29 12:57:09 31 4
gpt4 key购买 nike

嘿呀,我在构建我开发的 ndk/jni 共享库时遇到问题。我希望重用平台附带的 libjpeg (/system/lib/libjpeg.so),但我无法将其链接。当我构建我的共享库时,我得到...

/home/blink/workspace_android2/HackBitmapJNI/jni/jnijpeg/JNIBmp.cpp:94: undefined reference to `jpeg_std_error(jpeg_error_mgr*)'
/home/blink/workspace_android2/HackBitmapJNI/jni/jnijpeg/JNIBmp.cpp:96: undefined reference to `jpeg_CreateDecompress(jpeg_decompress_struct*, int, unsigned int)'
/home/blink/workspace_android2/HackBitmapJNI/jni/jnijpeg/JNIBmp.cpp:98: undefined reference to `jpeg_stdio_src(jpeg_decompress_struct*, __sFILE*)'
/home/blink/workspace_android2/HackBitmapJNI/jni/jnijpeg/JNIBmp.cpp:100: undefined reference to `jpeg_read_header(jpeg_decompress_struct*, int)'
/home/blink/workspace_android2/HackBitmapJNI/jni/jnijpeg/JNIBmp.cpp:102: undefined reference to `jpeg_start_decompress(jpeg_decompress_struct*)'
/home/blink/workspace_android2/HackBitmapJNI/jni/jnijpeg/JNIBmp.cpp:124: undefined reference to `jpeg_read_scanlines(jpeg_decompress_struct*, unsigned char**, unsigned int)'
/home/blink/workspace_android2/HackBitmapJNI/jni/jnijpeg/JNIBmp.cpp:130: undefined reference to `jpeg_destroy_decompress(jpeg_decompress_struct*)'
collect2: ld returned 1 exit status
make: *** [/home/blink/workspace_android2/HackBitmapJNI/obj/local/armeabi/libjnijpeg.so] Error 1*

这基本上是我需要在运行时从 libjpeg.so 中解析出的每个符号...

我已经将 libjpeg.so 从我的模拟器复制到我的“lib”下的项目目录中。当我在 libjpeg.so 的副本上运行“arm-eabi-readelf -s”时,我可以看到上面所有定义的符号(我看不到方法签名..只是名称..有没有办法转储签名/命名空间??)

我的Android.mk如下...

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_C_INCLUDES := /opt/android_src/dalvik/libnativehelper/include/nativehelper \
/opt/android_src/frameworks/base/include \
/opt/android_src/system/core/include \
/opt/android_src/dalvik/libnativehelper/include \
/opt/android_src/external/stlport/stlport \
/opt/android_src/external/jpeg \
/opt/android_src/bionic
LOCAL_LDFLAGS += -Llib
LOCAL_MODULE := jnijpeg
LOCAL_SRC_FILES := JNIBmp.cpp
LOCAL_LDLIBS := -lm -llog -ljpeg -landroid_runtime


include $(BUILD_SHARED_LIBRARY)

非常感谢您的帮助!

最佳答案

尝试以这种形式使用#include:

extern "C" {
#include "jpeglib.h"
}

它对我有用。

祝你好运!

关于android - 无法链接到 jni/ndk 共享库中的 libjpeg.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208817/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com