gcc/gdb/MinGW/makefile/cmake

编译器:

翻译代码为计算机语言的工具。计算机的CPU架构不同,代码想要在上面执行时需要编译器对代码进行编译汇编链接。汇编和链接的过程对每个不同的平台上过程都不一样。

GCC(GNU Compiler Collection):

多平台编译器,由GNU开发,最初用于编译C语言(GNU C Compiler)

gcc可以将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。

与gcc类似的还有clang,也是一个编译器。

GDB:

又称GNU调试器,是UNIX及UNIX-like下的调试工具

可以用GDB来做:

1. 给程序设置(特定条件下的)断点
2. 当程序停在断点处时,我们查看所有变量、寄存器的值
3. 当程序停在断点处时,我们除了能查看所有变量、寄存器的值以外,还能在不改变源代码的情况下改变这些值

MinGW(Minimalistic GNU for Windows):

编译器系统,建立在GCC和binutils项目上。

MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境,是一套GNU工具集合(一系列免费的Windows 使用的头文件和库文件;同时整合了GNU 的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等),该集合允许人们在没有第三方动态链接库的情况下使用GCC产生Windows32程序。它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基础支持。

make工具相当于一个智能的批处理工具,本身没有编译和链接的功能,而是用类似于批处理的方式通过调用makefile文件中用户指定的命令来进行编译和链接。

makefile相当于用户将要执行的一系列命令,make根据makefile中的命令对相应的源文件进行编译和链接。

makefile中可能就有类似的以下命令:gcc -o test.c。

makefile文件在github源码安装程序中很常见,下载一个源码包,通常在readme中会有这样的一句:

$ make all
$ make install # root required

make all即编译所有,当然这个源码包中必须有makefile文件才行,执行make all这个命令后make会根据makefile中的命令进行编译。当然这个是“别人家”的源码包,这个通常都给你写好了,但是如果要自己编译很多源文件的时候就需要cmake工具,可以更加方便地生成makefile文件给make用。cmake还可以跨平台生成对应平台可用地makefile,无需自己根据每个平台的不同特性修改。

cmake根据CMakeList.txt文件(组态档)生成makefile,在IDE中会由IDE自动生成CMakeLists.txt

参考: https://oldpan.me/archives/gcc-make-cmake-clang-tell

https://blog.csdn.net/micbrient/article/details/9241965

https://blog.csdn.net/hunter_wwq/article/details/39500343

https://blog.csdn.net/lee_ham/article/details/81778581

https://blog.csdn.net/jpcfei/article/details/6428613

https://blog.csdn.net/TheBeatles1994/article/details/81055418

猜你喜欢

转载自www.cnblogs.com/waterrr/p/12341859.html