激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言編程C++編輯器及調試工具操作命令詳解

C語言編程C++編輯器及調試工具操作命令詳解

2022-01-17 15:04未綄待續ξ C/C++

這篇文章主要介紹了C語言編程C++編輯調試工具操作命令詳解,本文章對C++調試工具的命令操作進行了詳細的講解,有需要的朋友可以借鑒參考下

一、GCC編譯器

1、GNU工具

編譯工具:把一個源程序編譯成為一個可執行程序。

調試工具:能對執行程序進行源碼及匯編級調試。

軟件工程工具:用于協助多人開發或大型軟件項目的管理,如make、CVS、Subvision

其他工具:用于把多個目標文件鏈接成可執行文件的鏈接器,或者用作格式轉換的工具。

2、GCC簡介

全稱為GNU CC ,GNU項目中符合ANSI C標準的的編譯系統。

編譯如C、C++、Object C 、Java、Fortran 、Pascal、Modula-3和Ada等多種語言。

GCC是可以在多種硬件平臺上編譯出可執行程序的超級編譯器,其執行效率與一般的編譯器相比平均效率要高20%~30%。

一個交叉平臺編譯器,適合在嵌入式領域的開發編譯

3、GCC編譯器的版本

GNU Compiler Collection
C、C++、Objective-C、Fortran,Java、Ada
http://gcc.gnu.org

4、gcc所支持后綴名解釋

.c ----- C原始程序

.C/.cc/.cxx ----- C++原始程序

.m ----- Objective-C原始程序

.i ----- 已經預處理過的 C原始程序

.ii ----- 已經預處理過的C++原始程序

.s/.S ----- 匯編語言原始程序

.h ----- 預處理文件(頭文件)

.o ----- 目標文件

.a/.so ----- 編譯后的庫文件

5、編譯器的主要組件

分析器:分析器將源語言程序代碼轉換成匯編語言。因為要從一種格式轉換成為另一種格式(C到匯編),所以分析器需要知道目標機器的匯編語言。

匯編器:匯編器將匯編語言代碼轉換成為CPU可以執行字節碼。

鏈接器:鏈接器將匯編器生成的單獨的目標文件組合成可執行的應用程序。鏈接器需要知道這種目標格式以便工作。

標準C庫:核心的C函數都有一個主要的C庫來提供。如果在應用程序中用到了C庫中的函數,這個庫就會通過鏈接器和源代碼連接來生成最終的可執行程序。

6、GCC的基本用法和選項

Gcc最基本的用法:gcc [options ] [filenames]

-c, 只編譯,不連接成為可執行文件,編譯器只是由輸入的.c等源文件生成.o為后綴的目標文件,通常用于編譯不包含主程序的子程序文件。

-o output filename, 確定輸出文件的名稱為output filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out

-g,產生符號調試工具(GNU的gdb)所必要的符號資訊,要想對源代碼進行調試,我們就必須加入這個選項。

-0,對程序進行 優化編譯、連接、采用這個選項,整個源代碼會在編譯、連接過程中進行優化處理,這樣產生的可執行文件的執行效率更高,但是,編譯、連接的速度就會相應的更慢一些。

-02,比-0更好的優化編譯、連接,當然整個編譯、連接過程會更慢。

-l dirname,將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預編譯過程中使用的參數。

-L dirname,將dirname所指出的目錄加入到程序函數檔案庫文件的目錄列表中,是在鏈接過程中使用的參數。

7、GCC的錯誤類型及對策

C語言編程C++編輯器及調試工具操作命令詳解

C語言編程C++編輯器及調試工具操作命令詳解

C語言編程C++編輯器及調試工具操作命令詳解

C語言編程C++編輯器及調試工具操作命令詳解

8、GCC編譯過程

C語言編程C++編輯器及調試工具操作命令詳解

1、預處理:處理以 " # " 開頭的語句,生成后綴名為 “ .i ” 的文件。

gcc -E test.c -o test -Wall -lm

C語言編程C++編輯器及調試工具操作命令詳解

2、編譯:根據不同的處理器把 “ *.i ”文件生成 “ *.s ” 匯編文件。

gcc -S test.i -o test.s

C語言編程C++編輯器及調試工具操作命令詳解

3.匯編處理: 匯編代碼并不是電腦能夠直接識別的,要經過匯編器的處理生成“ *.o ”的目標文件,可以用file命令查看文件信息。

gcc -c test.s -o test.o

C語言編程C++編輯器及調試工具操作命令詳解
C語言編程C++編輯器及調試工具操作命令詳解

4、鏈接: 多個 “*.c ” 文件就會生成多個 “ *.o ” 文件,就需要用鏈接器將每個 “ *.o ”文件鏈接起來,標準的C庫是默認自動鏈接的 。

gcc test.o -o test -lm

C語言編程C++編輯器及調試工具操作命令詳解

#include <stdio.h>
#include <math.h>
#define N 10
#define _DEBUG_
int main(int argc,const char *argv[])
{
	double m = 615,n;
	m += N ;	
	n = sqrt(m);
#ifdef _DEBUG_
	printf("debug:m=%lf n=%lf \n",m,n);
#else 
	printf("release:m=%lf n=%lf \n",m,n);
#endif
	return 0;
}

C語言編程C++編輯器及調試工具操作命令詳解

條件編譯

1、 根據宏是否定義

#ifdef …#else … #endif

2、根據宏定義的值

#define DEFINE 1
#if DEFINE …#else … #endif

 

二、GDB調試工具

1、Gdb調試流程:

首先使用gcc對 *.c 文件進行編譯,注意一定要加上選項 -g

1、gcc -g **.c -o **

2、gdb gcc

2、進入代碼調試模式后

(gdb)l ---- 查看文件

(gdb) b 6 ---- 設置斷點

(gdb)del 1 ---- 刪除第一個斷點

(gdb)info b ---- 查看斷點情況

(gdb)r ---- 運行代碼

(gdb) p n ---- 查看變量值

(gdb) n (gdb) s ---- 單步運行 n :運行主程序時不進去子函數,s :運行主函數時進入子函數

(gdb) c ---- 恢復程序運行 ------- 直接運行到下一個斷點

(gdb) help [command] ---- 幫助

(gdb)q -----退出

(gdb)set args -----調命令行參數用的

以上就是C語言編程C++編輯調試工具操作命令詳解的詳細內容,更多關于C語言編程C++編輯調試工具的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/qq_47518233/article/details/120368976

延伸 · 閱讀

精彩推薦
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
主站蜘蛛池模板: 毛片视频播放 | 中文字幕免费在线看 | 久久久久久久久久久久免费 | 亚洲一区成人在线 | 国产精品一区二区三区99 | 久久99精品久久久久久秒播放器 | 亚洲精品午夜在线 | av在线观 | 深夜福利视频免费观看 | 日本不卡一区二区三区在线 | 国产一区二区在线免费观看 | 国产精品一区在线观看 | 午夜精品久久久久久久99热浪潮 | 国产精品成人久久 | 精品久久久久久久久久久久久久久久久久久 | 九九热精品在线视频 | 日日做夜夜操 | 香蕉国产9 | 黄色大片高清 | 国产一级免费视频 | 嗯~啊~弄嗯~啊h高潮视频 | 天天干导航| 亚洲国产精品一区二区久久 | 成人羞羞视频在线观看免费 | 全黄毛片 | 久久99国产精品视频 | 久久久久久久久久久久久国产精品 | 最新91在线视频 | 午夜激情视频网站 | 亚洲午夜久久久精品一区二区三区 | 成人午夜在线观看视频 | 久久久久国产一区二区三区不卡 | 成人男女啪啪免费观看网站四虎 | 91麻豆精品国产91久久久无需广告 | 欧美a黄 | 日本在线播放一区二区 | 国产免费网站视频 | 日韩精品dvd| 欧美性生活视频免费看 | 欧美性受xxxxxx黑人xyx性爽 | 午夜精品久久久久久中宇 |