编译 libpng zlib mozjpeg libjpeg-turbo 失败的解决方法

使用vcpkg 进行下载

在使用vcpkg安装这些库之前,请确保你已经正确安装并配置了vcpkg。以下是在Windows环境下,使用vcpkg安装libpng, zlib, mozjpeg, 和 libjpeg-turbo的命令序列。这些命令假设你已经在命令行中进入了vcpkg的根目录。

  1. 安装zlib:

    vcpkg install zlib
    
  2. 安装libpng:
    由于libpng依赖于zlib,vcpkg在安装libpng时会自动处理zlib的依赖关系。

    vcpkg install libpng
    
  3. 安装mozjpeg:
    mozjpeg是一个JPEG库,提供更好的压缩效率。

    vcpkg install mozjpeg
    
  4. 安装libjpeg-turbo:
    libjpeg-turbo是另一个JPEG库,以其高速度而闻名。请注意,如果你的应用程序只需要一个JPEG库,通常选择libjpeg-turbo或mozjpeg之一即可,除非有特定需求同时使用两者。

    vcpkg install libjpeg-turbo
    

注意

  • 在执行安装命令前,如果这是你第一次使用vcpkg,可能需要先运行.\bootstrap-vcpkg.bat(Windows)或./bootstrap-vcpkg.sh(Linux/macOS)来初始化vcpkg。
  • 如果你需要为特定的编译器或平台(如x64-windows, x86-windows等)安装这些库,请在库名后加上相应的三段式目标指定符,例如:vcpkg install libpng:x64-windows
  • 安装过程中,vcpkg会自动处理依赖项,但有时候可能需要手动解决依赖问题或冲突。
  • 成功安装后,要将这些库集成到你的项目中,通常需要设置正确的包含目录和库目录路径,vcpkg提供了方便的集成方法,如通过CMake的find_package或使用vcpkg生成的NuGet包等。可以查看vcpkg的文档获取更详细的集成指南。

补充

在不使用vcpkg 编译 mozjpeg 时,可以手动进行编译,但是以来libpng 和 zlib。 这两个库 可以有vcpkg 生成。
然后修改 mozjpeg的cmake ,不让 mozjpeg 自己搜索这两个库,而是直接写死路径。

if(PNG_SUPPORTED)# to avoid finding shared library from CMake cacheunset(PNG_LIBRARY CACHE)unset(PNG_LIBRARY_RELEASE CACHE)unset(PNG_LIBRARY_DEBUG CACHE)unset(ZLIB_LIBRARY CACHE)unset(ZLIB_LIBRARY_RELEASE CACHE)unset(ZLIB_LIBRARY_DEBUG CACHE)if(APPLE)# find_package(ZLIB REQUIRED) # macos doesn't have static zlibendif()set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})# find_package(PNG 1.6 REQUIRED)if(NOT APPLE)# find_package(ZLIB REQUIRED)endif()# C:/Users/20021/Desktop/vcpkg/packages/libpng_x64-windows/lib# C:/Users/20021/Desktop/vcpkg/packages/zlib_x64-windows/lib# C:/Users/20021/Desktop/vcpkg/packages/zlib_x64-windows/include# C:/Users/20021/Desktop/vcpkg/packages/libpng_x64-windows/includeset(PNG_INCLUDE_DIR "C:/Users/20021/Desktop/vcpkg/packages/libpng_x64-windows/include" CACHE FILEPATH "Path to the ZLIB library file")set(ZLIB_LIBRARY "C:/Users/20021/Desktop/vcpkg/packages/zlib_x64-windows/lib/zlib.lib" CACHE FILEPATH "Path to the ZLIB library file")set(PNG_LIBRARY "C:/Users/20021/Desktop/vcpkg/packages/libpng_x64-windows/lib/libpng16.lib" CACHE FILEPATH "Path to the ZLIB library file")set(ZLIB_INCLUDE_DIR "C:/Users/20021/Desktop/vcpkg/packages/zlib_x64-windows/include" CACHE FILEPATH "Path to the ZLIB library file")target_include_directories(cjpeg-static PUBLIC ${PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})target_link_libraries(cjpeg-static ${PNG_LIBRARY} ${ZLIB_LIBRARY})endif()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

队列的特性及代码实现(C语言)

目录 队列的定义 队列的实现分析 代码实现 Queue.h Queue.c 队列的定义 队列是只允许在一端进行插入操作,而在另一段进行删除操作的线性表。 首先,让我们来看一看生活中的队列,当我们去银行办理业务的时候,我们进入银行的时候…

Python的第三方库OS库

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀OS/SHUTIL 的方法描述🚀OS/SHUTIL…

Golang 协程和 Channel 的协同工作

在 Golang 中,协程(goroutine)和通道(channel)是并发编程的两大支柱。协程是一种轻量级的线程,而通道则是协程之间进行通信的管道。在本文中,我们将通过一个简单的示例来深入理解它们是如何协同…

GPT-4o:突破与革新

近年来,人工智能(AI)技术迅速发展,特别是在自然语言处理(NLP)领域,GPT系列模型表现尤为突出。随着OpenAI不断推出新版本,GPT-4o作为最新成员,再次引起广泛关注。本文将对…

不同linux账户切换不同的cuda版本

原因 由于服务器中安装了两个版本的cuda(cuda10.1和cuda11.1),不同项目可能需要应用不同的cuda版本,但是自己又没有root权限或者只想在使用指定conda环境时改为用指定的cuda版本。总结起来有三种方法: 1、修改软链接指…

新游启航 失落的方舟台服注册指南 一文教会你方舟台服注册

新游启航!失落的方舟台服注册指南!一文教会你方舟台服注册 失落的方舟作为本月最受期待游戏之一,在上线之际许多玩家已经有点急不可待了。这款游戏是由开发商Smile gate开发的一款MMORPG类型游戏,这款游戏的基本玩法与其他MMORPG…

理解AdaBoost算法:简单流程概述(一)【流程理解、无数学推导】

什么是AdaBoost 算法? AdaBoost(Adaptive Boosting)算法,全称为 自适应提升 ,是 一种在机器学习中用作集成方法的提升技术 。它之所以被称为自适应提升,因为每个实例的权重会重新分配,错误分类…

前端面试题日常练-day47 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 1. 在Bootstrap中,以下哪个类用于创建一个具有响应式的栅格系统? a) .grid-system b) .responsive-grid c) .container-fluid d) .grid-responsive 2. 哪个Bootstrap类用于创…

Python 关于编码与解码

在Python中,字符串的编码和解码是处理字符串与字节之间转换的重要操作。 常见的字符串编码方式包括以下几种: ASCII 编码(American Standard Code for Information Interchange):ASCII 是最早的字符编码标准&#xf…

推荐一个远程数据库 Supabase

地址:Supabase | The Open Source Firebase Alternative 使用文档: Supabase Docs

IO进程线程(三)文件IO之open/close read/write lseek

一、文件IO (一)概念 文件IO就是系统调用,用户空间进入内核空间的过程就是系统调用。 系统调用没有缓冲机制,效率较低,可移植性也相对较差,实时性高。 文件描述符是使用open函数打开文件时的返回值&…

NIUSHOP开源商城单商户V6版本:前端技术架构的深度解析

摘要: 本文将对NIUSHOP开源商城单商户V6版本的前端技术架构进行深度解析。NIUSHOP V6版本以其强大的多应用多插件组合设计理念、前后端完全分离的技术架构,以及支持多语言、多平台等特点,受到了市场的广泛好评。本文将详细介绍其前端技术栈的…

HOW - BFF 服务实践系列(一)

目录 一、BFF 介绍1.1 BFF 的概念1.2 为什么需要 BFF1.3 举例说明 二、适用于Web前端的BFF应该提供哪些能力2.1 接口聚合(重要)2.2 简化和优化的API2.3 安全和身份验证(重要)2.4 缓存机制2.5 错误处理和重试机制2.6 数据格式转换2…

【算法】贪心算法简介

贪心算法概述 目录 1.贪心算法概念2.贪心算法特点3.贪心算法学习 1.贪心算法概念 贪心算法是一种 “思想” ,即解决问题时从 “局部最优” 从而达到 “全局最优” 的效果。 ①把解决问题的过程分为若干步②解决每一步时候,都选择当前最优解(不关注全局…

RDD实战:排序算子 - sortBy()

在本实战案例中,我们将使用Apache Spark的sortBy()算子来对一个包含学生信息的RDD进行排序操作。 排序规则如下: 首先按照性别升序排列。在性别相同的情况下,按照年龄降序排列。 步骤1:创建学生信息列表 首先,我们创…

基于51单片机和NRF24L01的无线温度监控设计

一、设计功能 由单片机、温度传感器、无线模块NRF24L01以及液晶显示器等构成高精度远 程无线温度监测系统。 温度显示精确到小数点后一位。 按键设定过温值,过温在液晶屏提示。 系统设计 三、器件选择3.1温度信号采集模块 传统的温度检测大多以热敏电阻为传感器&a…

【C++】list的使用(上)

🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🌈关于list🔥默认成员函数构造函数(constructor)析构函数(destructor)赋值运算符重载 &#x1…

从技术底层超主层依次介绍大模型

目录 # 如何让大模型更聪明? 一、GPT大模型基本概念 二、大模型生态介绍 三、简单描述如何让大模型变得更加聪明 # 如何让大模型更聪明? 一、GPT大模型基本概念 前景: 40年一遇的技术变革;被优化的人口,在未来十…

五分钟“手撕”栈

实现代码放开头,供大家学习与查阅 目录 一、实现代码 二、什么是栈 三、栈的常见操作 底层实现是链表。 入栈 出栈 四、Stack的使用 五、栈的习题 第一题 第二题 第三题 第四题 第五题 第六题 第七题 六、栈、虚拟机栈、栈帧的区别 目录 一、…

Request

一、Request介绍 在计算机网络中,"Request"(请求)通常指的是客户端向服务器发送的请求消息,用于获取特定资源或执行特定操作。在Web开发中,"Request"通常指的是HTTP请求,用于客户端与服…