Mac下编译zlib中的minizip

首先brew formula minizip拿到homebrew执行minizip的脚步
在这里插入图片描述

接着cd /usr/local/opt/minizip/.brew并vi minizip.rb
内容如下:
在这里插入图片描述
按照rb脚本的执行方式写一个对应的shell脚步

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 标志。

相关推荐

  1. 将基于CentosLinux man 汉化

    2024-01-09 06:38:01       16 阅读
  2. zlib --- 与 gzip 兼容压缩

    2024-01-09 06:38:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-09 06:38:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-09 06:38:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-09 06:38:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-09 06:38:01       20 阅读

热门阅读

  1. 903. 昂贵的聘礼(最短路,超级原点,Dijkstra)

    2024-01-09 06:38:01       41 阅读
  2. React16源码: React中Fiber对象的源码实现

    2024-01-09 06:38:01       32 阅读
  3. 【项目经验】:elementui 表单问题

    2024-01-09 06:38:01       35 阅读
  4. 编程笔记 html5&css&js 030 HTML音频

    2024-01-09 06:38:01       27 阅读
  5. 【HBase】——整合Phoenix

    2024-01-09 06:38:01       33 阅读
  6. 3.3 设计模式基础

    2024-01-09 06:38:01       37 阅读
  7. 146. LRU 缓存

    2024-01-09 06:38:01       39 阅读