CMake项目的完整构建

Linux下的CMake项目通常由几个文件夹组成。小伙伴们可以先在自己的电脑上新建一个文件夹,作为你代码的根目录,然后往里面建几个子文件夹,这里并不涉及具体的代码,只是可以作为今后写代码的模板,万事开头难嘛!

子文件1:bin

用来放编译好的可执行二进制文件,二进制文件就是可以直接运行的程序

子文件2:src

用来放源代码

子文件3:lib

用来放编译好的库文件夹,库文件是为二进制提供函数

子文件4:include

用来放头文件

CMakeLists.txt

既然是CMake项目肯定得有CMakeLists.txt

最后还有LICENSE和README.md

为什么要使用这种目录结构呢?这其实是一种编译习惯,当然也可以把所有的文件都放在一个目录里。在工程量比较小的情况下,这种方式可能显的很繁琐,之前在CMake实践1中也讲到过CMake编译是分内部编译和外部编译两种的,如果工程量很小,可以是内部编译。但是,为了养成良好的编译风格,增加代码的可读性,我们通常还是采用的外部编译方式,即建一个build文件夹,在里面进行编译。上面分为子文件的方式也是这样的,也是为了增加代码可读性,把整个工程整理的很清楚。 
O(∩_∩)O

在linux下,开发工具被切割成一个个独立的小工具。各自处理不同的问题。例如:

编辑器(emacs, vim) 用来进行编辑程序的
调试器(gdb) 用来调试程序
编译器(GCC) 用来编译和链接程序的
性能分析工具(gcov, gprof) 用来优化程序的
文档生成器(doxygen) 用来生成文档的

同时,还有一些系统工具和系统知识,我们是很有必要了解的:程序自动化机制 makefile,系统粘合剂shell,系统查找工具grep, locate, find。其它的工具(例如ctags, OCI公司的MPC等等),一旦熟练掌握,它们将成为你手中的利器。

最新文章

  1. Node.js 中MongoDB的基本接口操作
  2. replication set复制集
  3. Linux使用标准IO的调用函数,分3种形式实现
  4. 【HDOJ】3948 The Number of Palindromes
  5. 本地主机作服务器解决AJAX跨域请求访问数据的方法
  6. android动画特效之解决解决移动后闪烁现象,解决输入法弹出后位置回复原状,解决两个动画叠加
  7. Navicat的使用
  8. poj2635 同余定理 + 素数筛法
  9. 大话RabbitMQ 基础入门
  10. F2 - Spanning Tree with One Fixed Degree - 并查集+DFS
  11. leetcode — binary-tree-maximum-path-sum
  12. 【学习总结】GirlsInAI ML-diary day-15-读/写txt文件
  13. java 发送 mail 纯文本发送和html格式发送
  14. [DBNETLIB][ConnectionOpen(Invalid Instance())] 无效的连接 的解决办法
  15. 《JavaScript总结》js模块化
  16. jQuery实现全选/反选和批量删除
  17. 小程序歌词展示,格式lrc歌词
  18. PAT 1028 人口普查(20)(STL-set+思路+测试点分析)
  19. JVM内存模型以及垃圾回收
  20. 【WPF】修改ComboBox样式

热门文章

  1. web service 部 分
  2. centos7.5下kubeadm安装kubernetes集群安装
  3. jsp不解析el表达式,不识别jstl标签,找不到http://java.sun.com/jsp/jstl/core
  4. java自定义抛出的异常Exception
  5. Unicode UTF8 UTF16 urlencode base64
  6. decode 函数用法
  7. 浅析SQL Server 中的SOS_SCHEDULER_YIELD类型的等待
  8. 推荐一款好用并且免费的markdown软件 Typora
  9. JAVAWEB 一一 userweb1(原生,非servlet版)
  10. django select_related()和反射结合