写程序大体步骤为:
  1.用编辑器编写源代码,如.c文件。
  2.用编译器编译代码生成目标文件,如.o。
  3.用链接器连接目标代码生成可执行文件,如.exe。

但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。
对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。所以在编程的世界里没有捷径可走,还是要脚踏实地的。
原文件--camkelist ---cmake ---makefile ---make ---生成可执行文件

http://blog.sina.com.cn/s/blog_74a459380102uxlz.html

转载于:https://www.cnblogs.com/defe-learn/p/6855983.html

cmake make相关推荐

  1. TVM cmake示例展示

    TVM cmake示例展示 本文展示tvm/cmake中config.cmake,tvm/cmake/module/LLVM.cmake,tvm/cmake/module/CUDA.cmake,tvm ...

  2. VScode配置CMAKE文件

    创建一个vscode文件 记得一定要创建一个build文件夹,因为cmake编译过程中产生的中间文件会放到build文件夹中. 打开VScode 配置文件 launch.json {"ver ...

  3. PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖

    PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖 由于需要用到PCL中on_nurbs模块做拟合,但是ros自带的pcl中没有该模块.所以源码安装了PCL 1.9,但是在使用 ...

  4. ++项目 cmake头文件路径_CMAKE入门实战

    0.导语 最近做的项目使用CLION构建,而这个采用CMakeLists.txt管理,因此为了更好的学习,故找到了一篇大牛级别的入门文章,有文章有代码,本文是花了一点时间把这篇文章学习后的重要点记录吧 ...

  5. cmake java_JNI系列之AS支持CMake了

    写在前面 Android Studio 2.2+已支持CMake编译,与以前NDK-Build方式相比方便了不少,本文旨在引导大家在AS2.2+下一步一步建立JNI工程进行开发,并假设大家已经对JNI ...

  6. cmake开发环境 linux qt_一步步搭建CMake+QT+VTK+BOOST开发环境

    开发环境: 1.可以迅速处理大量并发网络数据包,ASIO库和winpcap 4.1.3库; 2.处理与显示点云模型数据,使用VTK 8.2.0库; 3.项目使用CMake+VC2017编译,GUI使用 ...

  7. 在Ubuntu18.04下的Cmake使用记录

    (1)首先是安装cmake.命令如下: sudo apt-get install cmake (2)创建一个源程序,1.cpp如下:(1.cpp的位置是位于hoem/ysh/code) #includ ...

  8. CMake结合PCL库学习(2)

    紧接着上一篇文章 对于PCL 库中的各个模块之间是有相互依赖关系的 其中Common模块是最基础的模块,其中是定义各种数据结构的头文件,所以Common这个模块是不需要依赖性响的,但是IO 模块就是需 ...

  9. CMake结合PCL库学习(1)

    经常会有有人问到CMake的学习的问题,而且网上也有很多博客是介绍学习CMake 的用法,但是我觉的学习不用这样死板,用到了就顺便学习一下,也就是边做边学,由浅入深,慢慢的就会熟悉了,这个学习的过程中 ...

  10. 在CentOS 6.3/6.6 64bit上源码安装cmake 3.4.0

    CMake主页是 https://cmake.org/download/ 1.安装必备包 yum install -y gcc gcc-c++ make automake ncurses-devel ...

最新文章

  1. iso镜像文件烧写到U盘
  2. C#网页数据采集(三)HttpWebRequest
  3. uva140 Bandwidth
  4. tf.layers.Dense与 tf.layers.dense的区别
  5. DevExpress的TextEdit、RadioGroup、ColorPickEdit设置默认值
  6. 【CyberSecurityLearning 8】PKI技术与应用
  7. CSS页面布局解决方案大全
  8. Linux 进程管理控制
  9. android支付宝支付开发过程
  10. java 面单模板_顺丰电子面单JSON请求格式
  11. 51单片机之TMOD寄存器
  12. 无需软件网页星号密码查看
  13. 重庆工商职业学院计算机专业在哪个校区,重庆工商职业学院地址在哪里
  14. 物联网-The Internet of Things
  15. 快速搭建自己的风格迁移
  16. docker容器无法访问宿主机报出 No route to host
  17. 陕西国防 c语言第三章实训三答案,C语言程序设计实验指导
  18. 卡位亚洲新门户,华为云泰国开服
  19. Multisim基础 LC并联选频电路
  20. 告诉你自动化成交秘诀发帖软件

热门文章

  1. struts2解决动态多文件上传的问题(上传文件与数据库字段一一对应)(转)
  2. 网页动态加载图片 通过JS和jquery实现。
  3. [AWDwR4] No JQuery call matches [:html, #cart]
  4. java基础—Map集合的常见方法操作(java集合八)
  5. Eclipse添加JDK源码
  6. 【NOIP2013】【Luogu1980】计数问题
  7. Dubbo(一) -- 初体验
  8. 银行科技管理工作优化提升之我见
  9. 解决启动Distributed Transaction Coordinator服务出错的问题
  10. LINQ – 使用DataLoadOptions 提高LINQ to SQL 查询性能