#!/bin/bash
LibDir=$PWD"/lib"
Target=$1
lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))
$(mkdir $LibDir)
for Variable in ${lib_array[@]}
do
cp "$Variable" $LibDir
done
./getLib.sh test
# test 为运行程序的
在文件夹 build-test-Desktop_Qt_5_14_0_GCC_64bit-Release中会新增了一个lib库,这个库就是运行该程序所需要的依赖库。
这个lib库和二进制文件 test 拷贝的没有装qt的设备上即可运行qt程序。
备注:
export LD_LIBRARY_PATH=./lib
可使用如下指令查看已经添加的环境变量
export
ldd test
可以根据提示去添加库的内容。
针对述问题
qt.qpa.plugin: Could not find the Qt platform plugin “xcb” in “”
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Aborted (core dumped)
是缺少以下库导致的,该库在qt的安装目录下。
进入QT的安装目录,找到platforms文件夹,
可使用如下指令
find / -name platforms
将该文件复制到lib文件下,然后只想如下指令使该环境变量在程序运行的时候能够被找到。
export QT_QPA_PLATFORM_PLUGIN_PATH=./lib/platforms
至此程序就应该能没有qt环境的程序中运行了。