编写一个首先要判断系统架构arm和x86 以及qt和依赖库的环境是否装好然后再编译源码 拷贝依赖库进行打包脚本
时间: 2024-03-15 21:45:36 浏览: 72
好的,这里提供一个示例的打包脚本,供您参考:
```
#!/bin/bash
# 判断系统架构
if [[ "$(uname -m)" == "x86_64" ]]; then
ARCH="x86_64"
else
ARCH="arm"
fi
# 判断Qt是否安装
if [ -z "$(which qmake)" ]; then
echo "Qt is not installed!"
exit 1
fi
# 判断依赖库是否安装
if [ ! -f /path/to/dependency/library.so ]; then
echo "Dependency library is not installed!"
exit 1
fi
# 编译源码
qmake
make
# 拷贝依赖库
cp /path/to/dependency/library.so .
# 打包
tar -czvf package_${ARCH}.tar.gz executable_file library.so
```
这个脚本首先通过 `uname -m` 命令判断系统架构是 x86 还是 arm,然后检查是否安装了 Qt 和依赖库。接着使用 qmake 编译源码,然后拷贝依赖库,并使用 tar 命令打包成一个压缩包。在打包时,会根据系统架构在文件名中添加一个后缀,以便区分不同的架构。当然,实际的脚本还需要根据具体情况进行修改。
相关问题
x86和arm自动编译打包qt源码拷贝依赖库脚本
好的,针对您的需求,我可以给您提供一个自动编译、打包 Qt 源码并拷贝依赖库的脚本,支持 x86 和 arm 平台。
```bash
#!/bin/bash
# 指定 Qt 源码根目录和 Qt 构建目录
SRC_DIR=/path/to/qt/source
BUILD_DIR=/path/to/qt/build
# 指定 Qt 版本号和平台
QT_VERSION=5.15.2
PLATFORM=x86_64-linux-gnu
# 指定 Qt 安装路径
INSTALL_DIR=/path/to/qt/install
# 编译 Qt
cd $BUILD_DIR
make -j$(nproc)
# 打包 Qt
make install INSTALL_ROOT=$INSTALL_DIR
cd $INSTALL_DIR
tar czf qt-$QT_VERSION-$PLATFORM.tar.gz *
# 拷贝依赖库
mkdir -p $INSTALL_DIR/libdeps
ldd $INSTALL_DIR/lib/*.so* | grep "=>" | awk '{print $3}' | sort -u | xargs -I '{}' cp -v '{}' $INSTALL_DIR/libdeps
echo "Qt $QT_VERSION build for $PLATFORM completed!"
```
使用时,您需要将脚本中的路径和参数修改为您自己的设置,然后运行脚本即可。脚本会自动编译、打包 Qt,并将依赖库拷贝到指定的目录中。
希望这个脚本能够帮到您。如果您还有其他问题,请随时问我。
x86和arm架构通用判断是否安装qt 安装后自动编译qt项目源码 打包可执行程序拷贝依赖库脚本
好的,针对您的需求,我可以给您提供一个通用的脚本,可以根据 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 项目源码,打包可执行程序并拷贝依赖库。
希望这个脚本能够帮到您。如果您还有其他问题,请随时问我。
阅读全文