2

Android デバイス用の AC プログラムを作成しようとしています。dlopen と dlsym を使用して、共有ライブラリ内の関数を開きます。arm-none-linux-gnueabi でコンパイルしています。私の helo.c プログラムは次のようになります。

helo.c

#include "stdio.h"
#include "dlfcn.h"

void main(int argc, char ** argv) {

    void *handle=0;void *func=0;  


    handle = dlopen("sharedlib.so", 1);  
    if (handle == 0) {
        printf("Failed openning lib\n");
        return;
    }

    func = dlsym(handle, "hello_world_");
    if (func == 0) {
         printf("Failed func\n");
        return;
    }

    dlclose(handle);

}

この方法でコンパイルしています:

arm-none-linux-gnueabi-gcc -w  -g3 -O0  -ggdb hello.c  -o  hello -ldl -Wl,--dynamic-linker=/system/bin/linker

しかし、自分のデバイスで実行しようとすると、このエラーが発生します

link_image[1936]:  1983 could not load needed library 'libdl.so.2' for helo (reloc_library[1285]:  1983 cannot locate '__cxa_finalize'...)CANNOT LINK EXECUTABLE

何か案が

4

0 に答える 0