论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
CMake构建学习笔记2-zlib库的构建
CMake构建学习笔记2-zlib库的构建
曹旭辉
论坛元老
|
2024-8-24 12:31:45
|
显示全部楼层
|
阅读模式
楼主
主题
2014
|
帖子
2014
|
积分
6042
目录
1. 概述
2. 详论
2.1 设置构建目录
2.2 配置构建
2.3 构建项目
2.4 安装项目
2.5 清理构建目录
3. 总结
1. 概述
Zlib是一个数据压缩库,它提供了在内存中对数据进行压缩和解压缩的功能。这个库非常泛用,除了直接利用这个库之外,很多依赖库都会间接依赖它。这里就以Windows系统为例介绍一下怎样通过CMake构建它。
2. 详论
2.1 设置构建目录
只管CMake提供了GUI工具,但是不推荐通过GUI进行构建。缘故原由很简单,有很多构建选项需要我们自己控制,一个个去配置是很容易忘记自己配置了哪些选项的,总不能把配置的截图生存下来吧?因此照旧利用脚本比较合适。
在下载
源代码
之后,进入源代码目录,会有一个CMakeLists.txt文件,这个文件就是用于CMake构建的项目文件。在进行构建之前,需要设置一个单独的目录存放构建的中间文件和效果文件,方便与源代码分开。通常的做法是在这个跟目录中创建一个名为Build的目录。
2.2 配置构建
接下来,利用如下命令来配置构建项目:
# 配置CMake
cmake .. -G "$Generator" -A x64 -DCMAKE_CONFIGURATION_TYPES=RelWithDebInfo -DCMAKE_INSTALL_PREFIX="$InstallDir" -DZLIB_BUILD_EXAMPLES=OFF
复制代码
..表示项目的根目录是上一级目录。
-G $Generator的意思设置生成器,在Windows环境下一般利用MSVC进行构建,例如利用Visual Studio 2019进行构建,Generator就应该是"Visual Studio 16 2019"。
-A x64指定架构为64位。
所有的构建配置项目以-D开头,CMAKE_CONFIGURATION_TYPES是一个CMake内置变量,用于控制可用的配置类型,这里利用的是RelWithDebInfo,也就是Release带调试信息的类型。
CMAKE_INSTALL_PREFIX也是一个内置的CMake变量,用于设置项目安装的目录,如果不设置的话,Linux系统下默认会安装到"/usr/local",Windows系统下会安装到"C:/Program Files/"。
ZLIB_BUILD_EXAMPLES内置一个项目提供的一个配置项,表示不用构建项目自带的案例程序。
越是大型项目,需要配置的构建项就越多。对于项目提供的配置项,可以在CMakeLists.txt中看到,例如:
option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON)
复制代码
如果不会看这些也没关系,可以打开CMake的GUI工具帮助我们辅助检察。在GUI工具中会列出所有的CMake变量和项目配置项:
2.3 构建项目
然后就是正式开始构建项目了:
# 构建阶段,指定构建类型
cmake --build . --config RelWithDebInfo
复制代码
--build表示构建项目。
.表示构建的效果放在当前目录。
--config RelWithDebInfo表示按照Release带调试信息的类型进行构建。
2.4 安装项目
最后是安装项目。有的读者包括笔者最开始会比较奇怪,dll也需要安装的吗?是的没错,需要安装,而且最好把所有依赖库安装到一个目录中,如许便于引用和管理。
# 安装阶段,指定构建类型和安装目标
cmake --build . --config RelWithDebInfo --target install
复制代码
2.5 清理构建目录
另外还有个指令是清理构建生成的文件,不过利用的不是很多,手动删除也行:
# 清理构建目录
cmake --build . --target clean
复制代码
3. 总结
以上大概就是构建一个C/C++依赖库项目的过程了,不止是zlib,其他库也可以按照这种方式进行构建,最大的区别就是不同的项目大概需要的配置项不同,读者需要灵活把握。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
曹旭辉
论坛元老
这个人很懒什么都没写!
楼主热帖
网络安全应急响应 - 03 - 日志分析与内 ...
Redis - 介绍与使用场景
Mysql 的Innodb引擎和Myisam数据结构和 ...
Nmap抓包分析与绕过Windows防火墙 ...
【docker系列】docker API管理接口增加 ...
聊聊Spring事务控制策略以及@Transacti ...
一招教你如何高效批量导入与更新数据 ...
Java如何将字符串转换颜色呢? ...
用代码收集每天热点内容信息,并发送到 ...
C#中的CSV文件读写
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表