现在有一个DNK开发的so文件,我想在Linux下的C语言调用这个so文件,但是总是提示:[root@PCGiter Code]# gcc SoTest2.c -o SoTest2.exe -ldl
[root@PCGiter Code]# ./SoTest2.exe
Open Error:libcom_wuba_aes_ExecV3_1_0.so: cannot open shared object file: No such file or directory.
[root@PCGiter Code]# ./SoTest2.exe
Open Error:libcom_wuba_aes_ExecV3_1_0.so: cannot open shared object file: No such file or directory.
那在Linux下能直接调用DNK的so吗?或者怎样可以不在android的环境下直接调用DML的so文件呢?
ldconfig -p输出的列表中已经有了呀我怀疑是不是NDK的so根本不能被linux调用???
使用Android-ndk创建源文件,然后直接复制到仿真器中,再在adb shell中执行。
以下的例子是创建一个executable。# For building the Test executable
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)# Linker flags
LOCAL_LDLIBS += -llog
LOCAL_LDLIBS += -lOpenSLES
LOCAL_LDLIBS += -landroid# Include paths
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) # Local C Flags if any
LOCAL_CFLAGS := # Source Files to compile
LOCAL_SRC_FILES := \# Shared libraries to be used while linking
LOCAL_SHARED_LIBRARIES := # Local module name
LOCAL_MODULE := include $(BUILD_EXECUTABLE)你可以在模拟器shell通过启动仿真器,然后在命令提示符”adb shell”中执行命令。
我发现只有当我复制到 /data/ folder里面才能够执行。其他文件夹如/ mnt / sdcard不能够执行 executable。