CMake 为 macOS 平台生成适用于两个不同架构的 Zlib 库,

#!/bin/bash

# 设置 Zlib 源代码目录
ZLIB_SRC_DIR=$(pwd)

# 设置输出目录
OUTPUT_DIR="$ZLIB_SRC_DIR/build"
mkdir -p "$OUTPUT_DIR"

# 函数用于构建特定架构的 Zlib
build_zlib() {
    ARCH=$1
    BUILD_DIR="$OUTPUT_DIR/build_$ARCH"
    INSTALL_DIR="$OUTPUT_DIR/install_$ARCH"
    
    mkdir -p "$BUILD_DIR"
    cd "$BUILD_DIR"
    
    cmake "$ZLIB_SRC_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" -DCMAKE_OSX_ARCHITECTURES=$ARCH
    make -j$(sysctl -n hw.logicalcpu)
    make install
}

# 构建 x86_64 版本
build_zlib "x86_64"

# 构建 arm64 版本
build_zlib "arm64"

# 创建通用二进制文件
lipo -create \
    "$OUTPUT_DIR/install_x86_64/lib/libz.a" \
    "$OUTPUT_DIR/install_arm64/lib/libz.a" \
    -output "$OUTPUT_DIR/libz_universal.a"

echo "Universal library created at $OUTPUT_DIR/libz_universal.a"
#!/bin/bash

# 设置目录
ZLIB_SRC_DIR=$(pwd)

# 设置工作目录
WORK_DIR=$(pwd)/build
BUILD_DIR_X86_64="$WORK_DIR/build_x86_64"
BUILD_DIR_ARM64="$WORK_DIR/build_arm64"
BUILD_DIR_UNIVERSAL="$WORK_DIR/build_universal"
INSTALL_DIR_X86_64="$BUILD_DIR_X86_64/install"
INSTALL_DIR_ARM64="$BUILD_DIR_ARM64/install"
UNIVERSAL_LIB_DIR="$BUILD_DIR_UNIVERSAL/lib"
UNIVERSAL_INCLUDE_DIR="$BUILD_DIR_UNIVERSAL/include"

# 创建工作目录
mkdir -p $WORK_DIR

# 创建构建目录
mkdir -p $BUILD_DIR_X86_64
mkdir -p $BUILD_DIR_ARM64
mkdir -p $BUILD_DIR_UNIVERSAL

# 编译和安装 zlib
build_zlib() {
    ARCH=$1
    INSTALL_DIR=$2

    mkdir -p $WORK_DIR/zlib_${ARCH}
    cd $WORK_DIR/zlib_${ARCH}

    cmake $ZLIB_SRC_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_OSX_ARCHITECTURES=$ARCH
    make
    make install
}

# 合并 zlib 库文件和头文件
merge_zlib() {
    mkdir -p $UNIVERSAL_LIB_DIR
    mkdir -p $UNIVERSAL_INCLUDE_DIR

    lipo -create -output $UNIVERSAL_LIB_DIR/libz.a $INSTALL_DIR_X86_64/lib/libz.a $INSTALL_DIR_ARM64/lib/libz.a

    cp -R $INSTALL_DIR_X86_64/include/* $UNIVERSAL_INCLUDE_DIR/
}

# 编译并安装 zlib (x86_64 和 arm64)
build_zlib x86_64 $INSTALL_DIR_X86_64
build_zlib arm64 $INSTALL_DIR_ARM64

merge_zlib

# 验证生成的通用库
echo "验证生成的通用库:"
lipo -info $UNIVERSAL_LIB_DIR/libz.a

echo "通用库生成完毕,路径:$BUILD_DIR_UNIVERSAL"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁金金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值