CANNOT LINK EXECUTABLE问题解决

当尝试在Android设备上运行可执行文件时,可能会遇到找不到库文件如libtensorflowlite_c.so的错误。这通常是由于库不在系统默认搜索路径中导致的。解决方法是通过设置LD_LIBRARY_PATH环境变量,将库文件的路径添加到系统搜索路径中,例如`export LD_LIBRARY_PATH=/data/local/tmp/test/lib:$LD_LIBRARY_PATH`。需要注意的是,adb连接断开后,该设置会失效,需要重新设置。建议将可执行文件和库文件放置在具有读写权限的/data/local/tmp/目录下进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    若希望能够在手机等其他安卓设备跑可执行文件,有时候会出现如下类似的错误提示:
    
     CANNOT LINK EXECUTABLE "./android_test": library "libtensorflowlite_c.so" not found

     **现象**:如上述问题出现,即可执行文件android_test,找不到libtensorflowlite_c.so的这个库,所以跑不了,但是libtensorflowlite_c.so 又明明在 设备内,但就是找不了 。
     
    **原因**:系统的库的路径是默认好的,如果自己的库不在默认的路径的库下,就不能够找到,如部分手机的库默认是在/vendor/lib/ 里面的,但是你的库是无法放在里面的,因为权限的问题。
    
    **方法**:在加一个路径就可以了,如下:
    # export LD_LIBRARY_PATH=/data/local/tmp/test/lib:$LD_LIBRARY_PATH
    意思是,我把libtensorflowlite_c.so 放在/data/local/tmp/test/lib 里面,这样export LD_LIBRARY_PATH后,系统就会在这个路径找到库了。


    注意:adb 断开后,这个添加路径的设定就会取消,每次adb 成功后,都需要手动添加库路径,即
    export LD_LIBRARY_PATH=/data/local/tmp/test/lib:$LD_LIBRARY_PATH

    另外,对于大部分手机,在data/local/tmp/ 路径下,创造文件的话是可以读写的,建议可执行文件可放在这里测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值