首页 > 其他分享 >CMake构建学习笔记3-libpng库的构建

CMake构建学习笔记3-libpng库的构建

时间:2024-08-24 14:47:46浏览次数:9  
标签:RelWithDebInfo CMake -- 笔记 构建 libpng

libpng是一个用于读取、写入 PNG (Portable Network Graphics) 文件格式的开源软件库,有了上一篇笔记作为基础,构建起来也非常简单。还是在源代码的根目录中创建一个build文件夹,执行如下关键指令:

# 配置CMake  
cmake .. -G "$Generator" -A x64 `
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DCMAKE_PREFIX_PATH="$InstallDir" `
-DCMAKE_INSTALL_PREFIX="$InstallDir" `
-DPNG_TESTS=OFF `
-DPNG_STATIC=OFF `

# 构建阶段,指定构建类型
cmake --build . --config RelWithDebInfo

# 安装阶段,指定构建类型和安装目标
cmake --build . --config RelWithDebInfo --target install
  1. $Generator在上篇笔记中说过是生成器,例如"Visual Studio 16 2019"。
  2. CMAKE_BUILD_TYPE是设置构建的类型,这里使用的是RelWithDebInfo,也就是Release带调试信息的类型。
  3. CMAKE_PREFIX_PATH是一个非常关键的CMake变量,用于指定CMake查找依赖项、库、包等的优先搜索路径。它可以是一个以分号分隔的目录列表,CMake在这些目录中查找外部依赖项,这里使用的是安装目录。libpng是需要依赖于zlib进行构建的,而在上一篇笔记中我们已经在这个目录中安装了zlib,那么只要将这个变量指定这个目录,CMake进行构建的时候就会自动找到zlib的依赖项,从而简化我们的配置过程。如下图所示:
    CMake变量和项目配置
  4. PNG_TESTS和PNG_STATIC是libpng提供的构建选项,将它们都设置成OFF,表示不用构建测试程序,也不同构建静态库。

标签:RelWithDebInfo,CMake,--,笔记,构建,libpng
From: https://www.cnblogs.com/charlee44/p/18377759

相关文章

  • 快速入门:使用Python构建学生成绩管理应用
    前言诸位观众,本学期我有幸学习了Python编程课程。随着课程的结束,授课教师布置了一项任务,要求我们开发一个学生信息管理系统。基于老师的要求,我个人独立完成了这项任务。今天,我希望将这个简易的程序分享给大家,主要面向刚开始接触Python的新学者,希望它能助你们一臂之力。在这个......
  • CMake构建学习笔记2-zlib库的构建
    目录1.概述2.详论2.1设置构建目录2.2配置构建2.3构建项目2.4安装项目2.5清理构建目录3.总结1.概述Zlib是一个数据压缩库,它提供了在内存中对数据进行压缩和解压缩的功能。这个库非常泛用,除了直接使用这个库之外,很多依赖库都会间接依赖它。这里就以Windows系统为例介绍一......
  • Linux 系统上非 root 用户在cmake时使用 pybind11
    Linux系统上非root用户在cmake时使用pybind11标签:linuxAI摘要:非root用户可以通过在Linux系统上使用pip安装pybind11,随后使用命令获取cmake路径,并在CMakeLists.txt中手动添加该路径以便于CMake找到pybind11。具体步骤包括安装pybind11、获取cmake目录并在CMakeLists.tx......
  • Linux项目自动化构建工具-make/makefile
    ......
  • 构建Spring Boot应用的微服务服务监控与告警
    构建SpringBoot应用的微服务服务监控与告警大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!随着微服务架构的普及,服务监控与告警成为了保障系统稳定性的关键环节。本文将探讨如何在SpringBoot应用中构建微服务的监控与告警机制。一、微服务监控的......
  • 构建Spring Boot应用的微服务服务降级策略
    构建SpringBoot应用的微服务服务降级策略大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!微服务架构中的服务降级在微服务架构中,服务间的依赖关系复杂,任何一个服务的故障都可能影响到整个系统的稳定性。服务降级是一种应对策略,当某个服务不可用或响......
  • STM32寄存器操作、模板构建
    目录外设寄存器查找①名称②偏移地址③寄存器位表④位功能说明寄存器基本操作C语言的置位和清零具体方法设置GPIO流程给寄存器赋值带参数宏STM32F1xx芯片识别存储器映射寄存器映射让GPIOB端口的16个引脚输出高电平,要怎么实现?STM32寄存器映射C语言对寄存器的封装新建寄......
  • CMake构建学习笔记1-概述
    CMake可以说已经是C/C++构建的事实标准了,目前绝大多数的C/C++项目都已经采用CMake进行构建,好处至少有两点:一个是跨平台,另一个是方便依赖库引入。不过笔者认为,像CMake这种工具其实也没必要特意学习,说到底它也不过是方便程序员使用的工具,没有它程序员也能进行C/C++程序的构建,只不过......
  • 【FAISS】构建高效相似性搜索系统:从零开始
    FAISS(FacebookAISimilaritySearch)是一个用于高效相似性搜索和聚类的大规模集合库,尤其适用于处理大规模的向量数据集。FAISS主要用于近似最近邻搜索,可以极大地加速大规模数据集上的搜索速度。以下是使用FAISS构建相似性搜索系统的步骤:安装FAISS安装依赖项:确保您的......
  • 基于gitlab钩子的自动CICD构建
    基于GitLab的钩子(Webhook)设置自动化CI/CD构建流程,可以让代码在每次推送到GitLab仓库时自动触发Jenkins构建任务,从而实现持续集成和持续交付。以下是一个常见的基于GitLab和Jenkins的自动化CI/CD流程设置步骤:1.在GitLab中配置Webhook登录GitLab,并导航到......