一、GCC编译

Reference:https://blog.csdn.net/nyist_zxp/article/details/81429615?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.
GCC编译与GDB调试

GCC编译与GDB调试
GCC编译与GDB调试
GCC编译与GDB调试
GCC编译与GDB调试

警告提示功能

GCC编译与GDB调试
GCC编译与GDB调试

代码优化功能

GCC编译与GDB调试
GCC编译与GDB调试
GCC编译与GDB调试

调试功能

GCC编译与GDB调试
GCC编译与GDB调试

gcc和g++的区别

先说一下相关概念:GCC : GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。

gcc是GCC中的GUN C Compiler(C 编译器)
g++是GCC中的GUN C++ Compiler(C++编译器)

主要区别:

  1. 对于 .c和.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的);

  2. 对于 .c和.cpp文件,g++则统一当做cpp文件编译;

  3. 使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL;

  4. gcc在编译C文件时,可使用的预定义宏是比较少的;

  5. gcc在编译cpp文件时/g++在编译c文件和cpp文件时(这时候gcc和g++调用的都是cpp文件的编译器),会加入一些额外的宏,这些宏如下:

    #define GXX_WEAK 1
    #define __cplusplus 1
    #define __DEPRECATED 1
    #define GNUG 4
    #define __EXCEPTIONS 1
    #define private_extern extern

  6. 在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ ,但这并不代表 gcc –lstdc++ 和 g++等价,它们的区别不仅仅是这个;

二、GDB调试器

GDB简介

GCC编译与GDB调试
GCC编译与GDB调试

GDB常用命令

GCC编译与GDB调试
GCC编译与GDB调试

GDB调试初步

GCC编译与GDB调试
GCC编译与GDB调试

GDB详细使用

GCC编译与GDB调试
GCC编译与GDB调试

break命令用法

GCC编译与GDB调试

查看运行时的数据

GCC编译与GDB调试
GCC编译与GDB调试

查看源程序

GCC编译与GDB调试
GCC编译与GDB调试

GCC编译与GDB调试

改变程序的执行

GCC编译与GDB调试
GCC编译与GDB调试
GCC编译与GDB调试
GCC编译与GDB调试
GCC编译与GDB调试

xxgdb调试

GCC编译与GDB调试

相关文章: