初识GCC/GDB

  • gcc/g++的安装

Centos支持yum安装,但必须保证是在root下

使用yum安装gcc:  yum install gcc

同时可以通过       

rpm -qa|grep gcc

来检查当前系统下的gcc版本

libgcc-4.8.5-28.el7.x86_64
gcc-4.8.5-28.el7.x86_64

使用yum安装g++:yum install gcc-g++

gdb安装具体方法与gcc相同

  • 除过gcc之外的编译器 

 1.Microsoft Visual C++:

         Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软Windows视窗操作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft .NET框架。它以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结花费的时间,在大型软件计划上尤其显著。

 2.Borland C++

        Borland C++ Builder Compiler 是一个 BC 编译器。它是用来优化 BC 开发系统的工具。它包括最后版本的 ANSI/ISO C++ 语言的支持,包括 RTL,C++ 的 STL框架结构支持,该公司的编译器以速度快、占用空间少著称。Borland C++ Builder和Borland C++ Builder X这两种开发工具用的就是这个编译器。

 3.GNU C++

       GNU项目始创于1984年,旨在开发一个类似UNIX,且为自由软件的完整的操作系统,GCC是GNU的一个项目,是一个用于编程开发的自由编译器。如今的GCC支持众多语言。在Linux下编程最常用的C编译器就是GCC,除了支持ANSI C外,还对C语言进行了很多扩展,这些扩展对优化、目标代码布局、更安全地检查等方面提供了很强的支持。
4.Clang

       Clang是一个C++编写、基于LLVM、发布于LLVM BSD许可证下的C/C++/Objective-C/Objective-C++编译器。它与GNU C语言规范几乎完全兼容(当然,也有部分不兼容的内容,包括编译命令选项也会有点差异),并在此基础上增加了额外的语法特性,比如C函数重载(通过__attribute__((overloadable))来修饰函数),其目标(之一)就是超越GCC

  • 为什么调试的时候需要编译选项中添加 -g

            一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(gcc/g++)的 -g 参数可以做到这一点

gcc -g hello.c -o hello
  • 如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址,“-g”标志是对程序进行调试性编译时常用的选项。我们需要给每一个需要调试的源文件都加上这个选项。它将使用特殊版本的C语言标准库完成编译和链接操作,给库函数加上程序调试方面的支持。编译器会把这些标志自动传给链接器。

猜你喜欢

转载自blog.csdn.net/Shile975/article/details/84634101