当前位置: 首页 > news >正文

cmake(1)

文章目录

  • 概述
    • cmake的特点
    • 安装
    • hello-world
  • 小结

概述

cmake 是kitware 公司以及⼀些开源开发者在开发⼏个⼯具套件(VTK)的过程中衍⽣品,最终形成体系,成为⼀个独⽴的开放源代码项⽬。

cmake的特点

  • 开放源代码,使⽤类BSD 许可发布。http://cmake.org/HTML/Copyright.html
  • 跨平台,并可⽣成native 编译配置⽂件,在Linux/Unix 平台,⽣成 makefile,在苹果平台,可以⽣成xcode,在 Windows 平台,可以⽣成 MSVC 的⼯程⽂件。
  • 能够管理⼤型项⽬,KDE4 就是最好的证明。
  • 简化编译构建过程和编译过程。Cmake 的⼯具链⾮常简单:cmake+make。
  • ⾼效虑,按照KDE 官⽅说法,CMake 构建KDE4 的 kdelibs 要⽐使⽤autotools 来构建KDE3.5.6 的 kdelibs 快40%,主要是因为 Cmake 在⼯具链中没有libtool。
  • 可扩展,可以为cmake 编写特定功能的模块,扩充cmake 功能。

安装

wget https://cmake.org/files/v3.9/cmake-3.9.1-Linux-x86_64.tar.gz
tar zxvf cmake-3.9.1-Linux-x86_64.tar.gz

查看代码

tree -L 2 cmake-3.9.1-Linux-x86_64

创建软链接

mv cmake-3.9.1-Linux-x86_64 /opt/cmake-3.9.1
ln -sf /opt/cmake-3.9.1/bin/* /usr/bin/

hello-world

main.c
先新建一个main.c文件,代码如上图所示。

然后新建一个CMakeLists.txt,内容如下:
CMakeLists.txt
新建一个build目录,然后进入到这个目录:
build目录
执行cmake …,如下图:
cmake ..
make
然后执行make,生成如下文件。
make

小结

这一篇主要写了cmake 的安装及使用,写了一个简单的例子,然后顺便熟悉下cmake的流程。有兴趣可以去学习学习。OK,结束。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C++】:错误处理机制 -- 异常
  • 图像处理案例02
  • 效率何止10倍!利用输入法瞬间调用提示词
  • Harmony OS 卡片能力
  • ARM 离线安装k8s + harbor私有镜像库(麒麟)
  • NLP 之词的表示与语言模型
  • 巴黎奥运会8K转播科技为国产品牌自主研发设计
  • 第二章 部署LVS-DR集群
  • Mongodb权限
  • 谷粒商城实战笔记-136-商城业务-首页-整合thymeleaf渲染首页
  • Django异步请求和后台管理实战
  • 『哈哥赠书 - 55期』-『码农职场:IT人求职就业手册』
  • IT课程学习搭子
  • 【AD域】搭建AD域服务器
  • C++STL常用总结
  • 2018一半小结一波
  • exports和module.exports
  • KMP算法及优化
  • Laravel5.4 Queues队列学习
  • Median of Two Sorted Arrays
  • MQ框架的比较
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue-loader 源码解析系列之 selector
  • 爱情 北京女病人
  • 从PHP迁移至Golang - 基础篇
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 算法---两个栈实现一个队列
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • $.ajax()参数及用法
  • (BFS)hdoj2377-Bus Pass
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (六)软件测试分工
  • (算法)Game
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core 项目指定SDK版本
  • .NET gRPC 和RESTful简单对比
  • .Net 应用中使用dot trace进行性能诊断
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET开源纪元:穿越封闭的迷雾,拥抱开放的星辰
  • .NET学习全景图
  • .NET运行机制
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • @KafkaListener注解详解(一)| 常用参数详解
  • [2018-01-08] Python强化周的第一天
  • [android学习笔记]学习jni编程
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)