linux -- 编译命令总结

在平时的linux开发中,特别是非IDE开发 中,总是会或多或少的遇到相关开发命令,特点总结如下:

分类

  • 编译命令 gcc g++

gcc是linux平台中默认的c语言编译命令,g++则是对应c++编译命令

  • 编译批处理命令make

如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到可以通过批处理来编译源文件,make就是在这样的初衷下诞生的。但make命令有一个不方便的地方,就是你必须自己编辑makefile文件来指导make的编译过程,这在遇到大工程时,难度是不可想象的。

make还支持增量编译,即当我们改变了一小部分的源码文件的时候重新执行make,它将不会重新编译整个程序,而是仅仅更新那些直接或者间接依赖这些改变了的源码文件的非源码文件。

  • 自动生成makefilecmake

尽管cmake命令也需要手动编辑CMakeLists.txt文件来指导cmake命令,但相较于 makefile的编辑,难度已大大降低。

除此之外,cmake还支持跨平台makefile生成。它会自动辨别使用那种编译器去编译给出的源码种类,自动发现跨平台系统库。简而言之,就是cmake可以帮我们解决系统环境相关配置,解决跨平台编译难题。

实践

在平时的使用中,基本遵循一下流程:

1
2
3
4
5
6
# 1.编辑CMakeLists.txt, 执行cmake <path.CMakeList.txt>, 生成makefile
cmake ./CMakeLists.txt
# 2.执行make,进行批量编译
make
# 3. 进入可执行文件所在目录,运行
./runflie