aarch64-linux-android-g ++找不到导出的函数

时间:2018-07-04 12:05:44

标签: c++ android-ndk g++ cross-compiling

每个人。我正在使用aarch64-linux-android-g ++编译二进制文件。 代码是这样的:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int diag_wakelock_destroy();

int main(int argc, char **argv){
    printf("hello world");
    char mystring[] = "hi";
    int result = diag_wakelock_destroy();

    printf("finish! return: %d\n", result);

    return 0;
}

函数diag_wakelock_destroy是在libdiag.so中定义的,因此我们可以从IDA看到,或者只是使用“ nm -D libdiag.so”。但是当我用这个命令编译它时

aarch64-linux-android-g++ --sysroot=$SYSROOT -g -fpie -pie -o exe_fine hi_diag.cpp libdiag.so liblog.so libcutils.so libc++.so libm.so libc.so ld-android.so -ldl -L.

我收到此错误。

/tmp/ccUb4ImK.o: In function `main':
/home/sam/Documents/test/lib-diag/hi_diag.cpp:13: undefined reference to 
`diag_wakelock_destroy()'
collect2: error: ld returned 1 exit status

因此找不到导出的功能!真奇怪谁能帮我 ?谢谢!

0 个答案:

没有答案