链接错误信息截取:
p/p2psdk/p2pRecv.o /work/hw/client/app/p2pc/p2pcFifo.o /work/hw/client/app/p2pc/p2pc.o -pthread
/opt/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_so.o: No such file or directory/opt/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_so.o: No such file or directory
分析:其实这两个.o 就在NDK 的交叉编译环境哪里, 但不知道为什么编译器就是死活找不到他,包括指定 -L文件所在的路径;
解决:把该文件链接到Makefile 所在的当前目录:
[root@localhost install]# ln -snf /opt/android-ndk-r9c/platforms/android-12/arch-arm/usr/lib/crtbegin_so.o /work/hw/client/app/
[root@localhost install]# ln -snf /opt/android-ndk-r9c/platforms/android-12/arch-arm/usr/lib/crtend_so.o /work/hw/client/app/
[root@localhost install]# ll /work/hw/client/app/
lrwxrwxrwx 1 root root 72 Mar 23 17:20 crtbegin_so.o -> /opt/android-ndk-r9c/platforms/android-12/arch-arm/usr/lib/crtbegin_so.o
lrwxrwxrwx 1 root root 70 Mar 23 17:20 crtend_so.o -> /opt/android-ndk-r9c/platforms/android-12/arch-arm/usr/lib/crtend
/work/hw/client/app/ 为Makefile 所在的目录。