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

原文链接: https://www.cnblogs.com/waterrr/p/12341859.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    gcc/gdb/MinGW/makefile/cmake

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/330938

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午5:49
下一篇 2023年3月1日 下午5:50

相关推荐