为libpng不同架构创建构建目录、编译、安装以及合并库文件的所有步骤。

本文主要是介绍为libpng不同架构创建构建目录、编译、安装以及合并库文件的所有步骤。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

好的。既然你已经有了 libpng 的源代码,并且当前处在它的目录下,我们可以简化脚本,不再需要下载和解压源代码这一步。以下是修改后的脚本:```sh
#!/bin/bash# 当前目录即 libpng 源代码目录
LIBPNG_SRC_DIR=$(pwd)# 设置工作目录
WORK_DIR=$(pwd)/libpng_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# 编译 x86_64 版本的 libpng
cd $BUILD_DIR_X86_64
cmake $LIBPNG_SRC_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR_X86_64 -DCMAKE_OSX_ARCHITECTURES=x86_64
make
make install# 编译 arm64 版本的 libpng
cd $BUILD_DIR_ARM64
cmake $LIBPNG_SRC_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR_ARM64 -DCMAKE_OSX_ARCHITECTURES=arm64
make
make install# 合并库文件到通用库目录
mkdir -p $UNIVERSAL_LIB_DIR
lipo -create -output $UNIVERSAL_LIB_DIR/libpng16.a $INSTALL_DIR_X86_64/lib/libpng16.a $INSTALL_DIR_ARM64/lib/libpng16.a# 合并头文件
mkdir -p $UNIVERSAL_INCLUDE_DIR
cp -R $INSTALL_DIR_X86_64/include/* $UNIVERSAL_INCLUDE_DIR/# 验证生成的通用库
echo "验证生成的通用库:"
lipo -info $UNIVERSAL_LIB_DIR/libpng16.aecho "通用库生成完毕,路径:$BUILD_DIR_UNIVERSAL"

使用脚本进行构建

  1. 将上述代码保存为 build_libpng_universal.sh
  2. 赋予脚本执行权限:
chmod +x build_libpng_universal.sh
  1. 确保你处在 libpng 源代码的目录下,然后执行脚本:
./build_libpng_universal.sh

执行完之后,脚本会在 libpng_build/build_universal 目录下生成包含通用库的 lib 和头文件的 include 目录。在项目中,可以像这样链接你的库和包含文件:

set(LIBPNG_DIR "/absolute_path_to_libpng_build/build_universal")
link_directories(${LIBPNG_DIR}/lib)
include_directories(${LIBPNG_DIR}/include)
target_link_libraries(your_target libpng16)

这个脚本将处理从构建到合并的所有步骤,确保 libpng 的 x86_64 和 arm64 架构版本被正确编译和合并。


这篇关于为libpng不同架构创建构建目录、编译、安装以及合并库文件的所有步骤。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147169

相关文章

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.