2023-12-07 Android 新增动态链接库路径,LD_LIBRARY_PATH是Linux环境变量名,用于指定查找共享库,shell脚本实例,init.environ.rc 环境变量配置文件

一、执行android data目录下的可执行文件的时候提示,找不到动态链接库so。

CANNOT LINK EXECUTABLE "./xxxx": library "libxxxx.so" not found: needed by main executable

二、Linux系统下查看动态库依赖关系指令ldd,命令格式 ldd 完整路径/可执行文件

三、LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。

四、在脚本中使用的实例,给PATH增加路径,设置LD_LIBRARY_PATH,就可以在脚本里面执行可执行程序,调用自定义路径下的动态链接库。

#!/bin/sh
set +e

HYPER_FIRMWARE_PATH=/data/hyper_app/hyper_firmware

export PATH=$HYPER_FIRMWARE_PATH/system/bin:$PATH
export LD_LIBRARY_PATH=$HYPER_FIRMWARE_PATH/system/lib64:$LD_LIBRARY_PATH


if [ ! -e /data/hyper_app ] && [ -e /system/etc/upgrade.tar.gz ]; then
	echo "no data/hyper_app ,/system/etc/upgrade.tar.gz are  exist!use default firmware"
    mkdir -m 0700 -p /data/hyper_app
    cd /data/hyper_app ;tar xvf /system/etc/upgrade.tar.gz 
else
    echo "data/hyper_app is exist or /system/etc/upgrade.tar.gz is not exist."
fi

if [ -e /data/upgrade.tar.gz ] ; then
	echo "there is a upgrade package, start to upgrade firmware !"
    rm -rf /data/hyper_app;mkdir -m 0700 -p /data/hyper_app
    cd /data/hyper_app ;tar xvf /data/upgrade.tar.gz ;rm  -rf /data/upgrade.tar.gz	
else
    echo "the upgrade package is not exist."
fi

set -e

if [ -f "$HYPER_FIRMWARE_PATH/system/bin/run_hyper_apps.sh" ] && [ -e /usr/share/hyper/camera.ini ]; then
    echo "run_hyper_apps.sh and /usr/share/hyper/camera.ini are exists."
	run_hyper_apps.sh &
else
    echo "run_hyper_apps.sh or /usr/share/hyper/camera.ini is not exist."
fi

while true
do
sleep 1
done

五、android 系统的环境变量应该是在init.environ.rc文件里面进行设置

六、参考文章

CANNOT LINK EXECUTABLE问题解决_梁龙腾的博客-CSDN博客

LD_LIBRARY_PATH详解-CSDN博客

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值