一、执行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文件里面进行设置
六、参考文章