使用NDK 编译C/C++程序遇到 crtbegin_so.o: No such file or directory 等错误

链接错误信息截取:

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 所在的目录。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值