相关疑难解决方法(0)

如何将预建的共享库链接到Android NDK项目?

这里我Android.mkjni/文件夹中使用了这个文件.

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Here we give our module name and source file(s)
LOCAL_MODULE    := offlineDownload
LOCAL_SRC_FILES := offline_download.c

LOCAL_SHARED_LIBRARIES :=../lib/libpackext.so.1.0
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

lib在项目目录中创建一个文件夹并放入我的预构建.so库并生成一个Android.mk包含以下内容的文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := packext
LOCAL_SRC_FILES := libpackext.so.1.0
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include

include $(PREBUILT_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

当我使用ndk-build -B命令时,我得到了对packageExtraction的未定义引用.在这里,我使用我的预建库函数意味着我无法将我的预建共享库链接到我的offlinedownload库.

所以任何人都请帮我解决这个问题.

c android android-ndk

21
推荐指数
3
解决办法
4万
查看次数

在android ndk中编译fftw3

嗨,我是android-ndk的新手,到目前为止我使用android-ndk中的所有示例应用程序,现在我想在android中移植fftw3库,你能不能为我推荐任何教程.

谢谢.

android-ndk

7
推荐指数
2
解决办法
6540
查看次数

Android NDK链接

我正在尝试构建一个调用C++后端的android应用程序.此后端使用ZeroMQ进行消息传递.根据ZeroMQ指南中的android构建页面,我构建了一个ndk版本6的本机工具链,并使用它来(成功)构建ZeroMQ.

但是,当我使用JNI实现构建自己的.so时,我似乎无法正常加载所有内容.具体来说,如果我调用System.LoadLibrary("zmq"),这成功完成,但如果我然后调用*System.LoadLibrary("my_lib")*我总是得到一个UnsatisfiedLinkError抱怨:

Cannot load library reloc_library[1244]:   29 cannot locate zmq_msg_init'...
Run Code Online (Sandbox Code Playgroud)

libmy_lib.so已经以几种不同的方式生成,每种方式都没有成功.在生成它之后,我总是将libmy_lib.so(以及libzmq.so)复制到我的android项目的文件夹:libs/armeabi /.

# Compile all object files - this part was done for all options
/opt/android-toolchain/bin/arm-linux-androideabi-g++ -fpic -c Client_Events.cpp \
Client Wrapper.cpp jni.cpp -I /opt/android-root/include/ -I /my/project/specific/stuff

# Option 1 - Don't link the lib in at all
/opt/android-toolchain/bin/arm-linux-androideabi-g++ -shared  \
-Wl,-soname,libmy_lib.so -o libmy_lib.so jni.o Client_Events.o Client_Wrapper.o 

# Option 2 - Link ZeroMQ in statically
/opt/android-toolchain/bin/arm-linux-androideabi-g++ -shared  \
-Wl,-soname,libmy_lib.so -o libmy_lib.so jni.o Client_Events.o Client_Wrapper.o \
libzmq.a …
Run Code Online (Sandbox Code Playgroud)

android shared-libraries android-ndk

4
推荐指数
1
解决办法
7846
查看次数

标签 统计

android-ndk ×3

android ×2

c ×1

shared-libraries ×1