GCC編譯與GDB調試

一、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和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簡介

在這裏插入圖片描述
在這裏插入圖片描述

GDB常用命令

在這裏插入圖片描述
在這裏插入圖片描述

GDB調試初步

在這裏插入圖片描述
在這裏插入圖片描述

GDB詳細使用

在這裏插入圖片描述
在這裏插入圖片描述

break命令用法

在這裏插入圖片描述

查看運行時的數據

在這裏插入圖片描述
在這裏插入圖片描述

查看源程序

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

改變程序的執行

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

xxgdb調試

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章