- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在 linux 下使用 CMake 构建应用程序
Cmake 实践
Cmake Practice --Cjacker
前言:
cmake 已经开发了 5,6 年的时间,如果没有 KDE4 ,也
许不会有人或者 Linux 发行版
本重视 cmake ,因为除了 Kitware 似乎没有人使用它。通过
KDE4 的选型和开发, cmake
逐渐进入了人们的视线,在实际的使用过程中, cmake 的优
势也逐渐的被大家所认识,至
少 KDE 的开发者们给予了 cmake 极高的评价,同时庞大的
KDE 项目使用 cmake 来作为构
建工具也证明了 cmake 的可用性和大项目管理能力。
所以, cmake 应该感谢 KDE ,也正因为如此, cmake
的开发者投入了 KDE 从
autotools 到 cmake 的迁移过程中,并相当快速和顺利的完
成了迁移,现在整个 KDE4 开
发版本全部使用 cmake 构建。
这也是促使我们学习 cmake 的原因,首先 cmake 被接
受并成功应用,其次, cmake
的优势在实际使用中不断的体现出来。
我们为什么不来认识一下这款优秀的工程构建工具
呢?
在 2006 年 KDE 大会,听 cmake 开发者当面介绍了
cmake 之后,我就开始关注
cmake ,并将 cmake 纳入了 Everest 发行版, 作为系统默认
组件。最近 QT-4.3 也正式进
入了 Everest 系统,为 KDE4 构建完成了准备工作。
但是,在学习 cmake 的过程中, 发现官方的文档非常的
少,而且错误也较多,比如 :
在介绍 Findlt;Namegt; 模块编写的文档中,模块名称为
FOO ,但是后面却出现了
Foo_FIND_QUIETLY 的定义,这显然是错误的,这样的定
义永远不可能有效,正确的定义
是 FOO_FIND_QUIETLY “ ” 。种种原因,促使我开始写一
份面向使用和实用的 cmake 文档,
也就是本教程《 cmake 实践》 (Cmake Practice)
本文档是边学习边编写的成果,更像是一个学习笔记和
Tutorial ,因此难免有失误
或者理解不够透彻的地方,比如,我仍然不能理解为什么绝
大部分使用变量的情况要通过 $
{} 引用,而在 IF 语句中却必须直接使用变量名。也希望能够
有 cmake 的高手来指点迷津。
补:从 cmake 的 maillist, 我找到了一些答案,原文是:
The `IF(var) or `IF(NOT var) command expects `var to be
the
name of a variable. This is stated in CMakes manual. So,
for your
situation `IF(${libX}) is the same as `IF(/usr/lib/xorg) and
then CMake will check the value of the variable
文档评论(0)