自动更新管控端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

120 lines
2.7 KiB

#!/bin/bash
# RPC项目构建脚本
# 设置默认构建目录
build_dir="build"
install_prefix="/usr/local"
# 显示帮助信息
show_help() {
echo "用法: $0 [选项]"
echo "选项:"
echo " --help 显示帮助信息"
echo " --clean 清理构建目录"
echo " --install 安装到系统目录"
echo " --prefix=DIR 设置安装前缀 (默认: /usr/local)"
echo " --build-dir=DIR 设置构建目录 (默认: build)"
}
# 处理命令行参数
for arg in "$@";
do
case $arg in
--help)
show_help
exit 0
;;
--clean)
echo "清理构建目录 $build_dir..."
rm -rf "$build_dir"
exit 0
;;
--install)
install=true
shift
;;
--prefix=*)
install_prefix="${arg#*=}"
shift
;;
--build-dir=*)
build_dir="${arg#*=}"
shift
;;
*)
echo "未知选项: $arg"
show_help
exit 1
;;
esac
done
# 检查是否在Linux环境下运行
if [[ "$(uname)" != "Linux" ]]; then
echo "警告: 这个脚本设计用于Linux环境,您的操作系统可能不兼容"
echo "如果您在Windows上,可以尝试使用WSL或其他Linux子系统"
fi
# 检查是否安装了CMake
if ! command -v cmake &> /dev/null;
then
echo "错误: CMake未安装,请先安装CMake"
echo "Ubuntu/Debian: sudo apt-get install cmake"
echo "CentOS/RHEL: sudo yum install cmake"
exit 1
fi
# 检查是否安装了GCC
if ! command -v gcc &> /dev/null;
then
echo "错误: GCC编译器未安装,请先安装GCC"
echo "Ubuntu/Debian: sudo apt-get install gcc"
echo "CentOS/RHEL: sudo yum install gcc"
exit 1
fi
# 创建构建目录
mkdir -p "$build_dir"
cd "$build_dir"
# 运行CMake配置
echo "运行CMake配置..."
echo "安装前缀: $install_prefix"
cmake .. -DCMAKE_INSTALL_PREFIX="$install_prefix"
if [ $? -ne 0 ];
then
echo "CMake配置失败,请检查错误信息"
exit 1
fi
# 编译项目
echo "编译项目..."
make -j$(nproc)
if [ $? -ne 0 ];
then
echo "编译失败,请检查错误信息"
exit 1
fi
# 安装(如果请求)
if [ "$install" = true ];
then
echo "安装项目到 $install_prefix..."
sudo make install
if [ $? -ne 0 ];
then
echo "安装失败,请检查错误信息"
exit 1
fi
echo "安装成功!"
fi
# 显示成功信息
echo "构建成功! 可执行文件位于 $build_dir/bin/"
echo "运行服务器: ./$build_dir/bin/rpc_server"
echo "运行客户端: ./$build_dir/bin/rpc_client"