x86和arm架构通用判断是否安装qt 安装后自动编译qt项目源码 打包可执行程序拷贝依赖库脚本
时间: 2023-07-25 19:31:16 浏览: 170
好的,针对您的需求,我可以给您提供一个通用的脚本,可以根据 x86 和 ARM 架构自动判断是否已经安装 Qt,如果没有安装则自动安装,然后自动编译 Qt 项目源码,打包可执行程序并拷贝依赖库。
```bash
#!/bin/bash
# 指定 Qt 项目源码目录和构建目录
SRC_DIR=/path/to/qt/project
BUILD_DIR=/path/to/qt/build
# 指定 Qt 版本号
QT_VERSION=5.15.2
# 指定 Qt 安装路径
INSTALL_DIR=/path/to/qt/install
# 判断是否已经安装 Qt
if [[ $(uname -m) == "x86_64" ]]; then
if [[ $(dpkg -l | grep "qt$QT_VERSION-base" | wc -l) -eq 0 ]]; then
sudo apt-get update
sudo apt-get install -y qt$QT_VERSION-base qt$QT_VERSION-declarative qt$QT_VERSION-quickcontrols qt$QT_VERSION-svg qt$QT_VERSION-tools
fi
else
if [[ $(dpkg -l | grep "qtbase5-dev" | wc -l) -eq 0 ]]; then
sudo apt-get update
sudo apt-get install -y qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev libqt5svg5-dev libqt5opengl5-dev libqt5network5 libqt5network5-dev libqt5widgets5 libqt5widgets5-dev libqt5gui5 libqt5gui5-gles libqt5gui5-dev libqt5qml5 libqt5qml5-dev libqt5quick5 libqt5quick5-dev libqt5sql5 libqt5sql5-sqlite libqt5sql5-dev libqt5test5 libqt5test5-dev qttools5-dev qttools5-dev-tools
fi
fi
# 编译 Qt 项目源码
cd $BUILD_DIR
qmake $SRC_DIR
make -j$(nproc)
# 打包可执行程序
mkdir -p $BUILD_DIR/release
cp -rv $BUILD_DIR/$SRC_DIR $BUILD_DIR/release
cp -v $INSTALL_DIR/lib/*.so* $BUILD_DIR/release/$SRC_DIR
# 打包依赖库
mkdir -p $BUILD_DIR/release/libdeps
ldd $BUILD_DIR/release/$SRC_DIR | grep "=>" | awk '{print $3}' | sort -u | xargs -I '{}' cp -v '{}' $BUILD_DIR/release/libdeps
echo "Qt $QT_VERSION project build completed!"
```
使用时,您需要将脚本中的路径和参数修改为您自己的设置,然后运行脚本即可。脚本会自动根据架构判断是否已经安装 Qt,如果没有安装则自动安装,然后编译 Qt 项目源码,打包可执行程序并拷贝依赖库。
希望这个脚本能够帮到您。如果您还有其他问题,请随时问我。
阅读全文