Mac下编译zlib中的minizip

首先brew formula minizip拿到homebrew执行minizip的脚步

接着cd /usr/local/opt/minizip/.brew并vi minizip.rb

内容如下:

按照rb脚本的执行方式写一个对应的shell脚步

sh 复制代码
cd 到zlib目录
./configure
make
cd contrib/minizip
sed -i '' 's|-L$(zlib_top_builddir)|$(zlib_top_builddir)/libz.a|g' Makefile.am
sed -i '' 's|-version-info 1:0:0 -lz|-version-info 1:0:0|g' Makefile.am
sed -i '' 's|libminizip.la -lz|libminizip.la|g' Makefile.am
autoreconf -fi
./configure
make install

其中sed命令解释如下:

  • sed -i '' 's|-L (zlib_top_builddir)\| (zlib_top_builddir)/libz.a|g' Makefile.am
    这行命令的作用是在 Makefile.am 文件中把 -L (zlib_top_builddir) 替换为 (zlib_top_builddir)/libz.a。-L 选项通常在链接时使用,用于指示链接器搜索库文件的目录 $ (zlib_top_builddir) 是 zlib 库头文件所在目录的路径。替换后,不再链接整个目录下的库,而是只链接目录下的 libz.a 文件。
  • sed -i '' 's|-version-info 1:0:0 -lz|-version-info 1:0:0|g' Makefile.am
    这行命令寻找 Makefile.am 文件中的 -version-info 1:0:0 -lz 文本,并将其替换为 -version-info 1:0:0。这个命令删除了 -lz,这是链接 zlib 时通常会添加的选项,所以从链接过程中被移除,意味着不再链接 zlib。
  • sed -i '' 's|libminizip.la -lz|libminizip.la|g' Makefile.am
    这行命令则是将 Makefile.am 文件中的 libminizip.la -lz 替换为 libminizip.la,也就是去除了 -lz 标志。
相关推荐
小溪彼岸2 天前
macOS自带截图命令ScreenCapture
macos
TESmart碲视2 天前
Mac 真正多显示器支持:TESmart USB-C KVM(搭载 DisplayLink 技术)如何实现
macos·计算机外设·电脑
2501_915106322 天前
Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南
android·macos·ios·小程序·uni-app·iphone·xcode
他们都不看好你,偏偏你最不争气3 天前
【iOS】AFNetworking
开发语言·macos·ios·objective-c
钟念3 天前
【打包app】uniapp打包ios端和安卓端app
macos·objective-c·cocoa
森之鸟3 天前
Mac电脑上如何打印出字体图标
前端·javascript·macos
m_136873 天前
Mac M 系列芯片 YOLOv8 部署教程(CPU/Metal 后端一键安装)
yolo·macos
搜狐技术产品小编20234 天前
CAEmitterLayer:iOS 中创建炫酷粒子效果的魔法工具
macos·ios·objective-c·cocoa
未来之窗软件服务4 天前
操作系统应用开发(七)mac苹果模拟器——东方仙盟练气期
macos·仙盟创梦ide·东方仙盟·系统模拟器
liliangcsdn4 天前
Mac本地docker安装Kibana+ElasticSearch
elasticsearch·macos·docker