0

现在我有一个由 DNK 开发的 so 文件。我想在Linux中调用so文件使用C。但它总是提示:

[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.
4

1 回答 1

1

这个答案是用于为 Android 创建可执行文件并像在 Linux 中一样在 shell 中执行它们,而不是如何在 Linux 中执行 Android 可执行文件。

使用 Android-ndk 构建源文件,然后您可以直接复制到模拟器并在 adb shell 中执行。

用于为 android 创建可执行文件的 make 文件示例

# 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)

您可以通过启动模拟器然后在命令提示符 "adb shell" 中执行命令来进入模拟器外壳。

通常我观察到的是,当仅复制到 /data/ 文件夹时,我能够执行。/mnt/sdcard 等其他文件夹我无法执行可执行文件。

于 2012-12-18T09:41:08.383 回答