在平时的linux开发中,特别是非IDE开发 中,总是会或多或少的遇到相关开发命令,特点总结如下:
分类
- 编译命令
gcc
g++
gcc
是linux平台中默认的c语言编译命令,g++
则是对应c++编译命令
- 编译批处理命令
make
如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到可以通过批处理来编译源文件,make
就是在这样的初衷下诞生的。但make
命令有一个不方便的地方,就是你必须自己编辑makefile
文件来指导make
的编译过程,这在遇到大工程时,难度是不可想象的。
make
还支持增量编译,即当我们改变了一小部分的源码文件的时候重新执行make
,它将不会重新编译整个程序,而是仅仅更新那些直接或者间接依赖这些改变了的源码文件的非源码文件。
- 自动生成
makefile
的cmake
尽管cmake
命令也需要手动编辑CMakeLists.txt
文件来指导cmake
命令,但相较于 makefile
的编辑,难度已大大降低。
除此之外,cmake
还支持跨平台makefile
生成。它会自动辨别使用那种编译器去编译给出的源码种类,自动发现跨平台系统库。简而言之,就是cmake
可以帮我们解决系统环境相关配置,解决跨平台编译难题。
实践
在平时的使用中,基本遵循一下流程:
1 | # 1.编辑CMakeLists.txt, 执行cmake <path.CMakeList.txt>, 生成makefile |