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のようにシェルで実行するためのものですが、LinuxでAndroid実行可能ファイルを実行する方法ではありません。

Android-ndkを使用してソースファイルをビルドすると、エミュレーターに直接コピーしてadbシェルで実行できます。

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)

エミュレータを起動し、コマンドプロンプト「adbshel​​l」でコマンドを実行すると、エミュレータシェルに入ることができます。

通常、私が観察したのは/ data /フォルダーにのみコピーした場合で、実行できました。/ mnt/sdcardなどの他のフォルダ実行可能ファイルを実行できませんでした。

于 2012-12-18T09:41:08.383 に答える