为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

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1