您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C語言中C++編輯器及調試工具操作命令的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C語言中C++編輯器及調試工具操作命令的示例分析”這篇文章吧。
編譯工具:把一個源程序編譯成為一個可執行程序。
調試工具:能對執行程序進行源碼及匯編級調試。
軟件工程工具:用于協助多人開發或大型軟件項目的管理,如make、CVS、Subvision
其他工具:用于把多個目標文件鏈接成可執行文件的鏈接器,或者用作格式轉換的工具。
全稱為GNU CC ,GNU項目中符合ANSI C標準的的編譯系統。
編譯如C、C++、Object C 、Java、Fortran 、Pascal、Modula-3和Ada等多種語言。
GCC是可以在多種硬件平臺上編譯出可執行程序的超級編譯器,其執行效率與一般的編譯器相比平均效率要高20%~30%。
一個交叉平臺編譯器,適合在嵌入式領域的開發編譯
GNU Compiler Collection
C、C++、Objective-C、Fortran,Java、Ada
http://gcc.gnu.org
.c
----- C原始程序
.C/.cc/.cxx
----- C++原始程序
.m
----- Objective-C原始程序
.i
----- 已經預處理過的 C原始程序
.ii
----- 已經預處理過的C++原始程序
.s/.S
----- 匯編語言原始程序
.h
----- 預處理文件(頭文件)
.o
----- 目標文件
.a/.so
----- 編譯后的庫文件
分析器:分析器將源語言程序代碼轉換成匯編語言。因為要從一種格式轉換成為另一種格式(C到匯編),所以分析器需要知道目標機器的匯編語言。
匯編器:匯編器將匯編語言代碼轉換成為CPU可以執行字節碼。
鏈接器:鏈接器將匯編器生成的單獨的目標文件組合成可執行的應用程序。鏈接器需要知道這種目標格式以便工作。
標準C庫:核心的C函數都有一個主要的C庫來提供。如果在應用程序中用到了C庫中的函數,這個庫就會通過鏈接器和源代碼連接來生成最終的可執行程序。
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所指出的目錄加入到程序函數檔案庫文件的目錄列表中,是在鏈接過程中使用的參數。
1、預處理:處理以 " # " 開頭的語句,生成后綴名為 “ .i ” 的文件。
gcc -E test.c -o test -Wall -lm
2、編譯:根據不同的處理器把“ *.i ”文件生成 “ *.s ” 匯編文件。
gcc -S test.i -o test.s
3.匯編處理: 匯編代碼并不是電腦能夠直接識別的,要經過匯編器的處理生成“ *.o ”的目標文件,可以用file命令查看文件信息。
gcc -c test.s -o test.o
4、鏈接: 多個 “*.c ” 文件就會生成多個 “ *.o ” 文件,就需要用鏈接器將每個 “ *.o ”文件鏈接起來,標準的C庫是默認自動鏈接的 。
gcc test.o -o test -lm
#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; }
1、 根據宏是否定義
#ifdef …#else … #endif
2、根據宏定義的值
#define DEFINE 1
#if DEFINE …#else … #endif
首先使用gcc對 *.c 文件進行編譯,注意一定要加上選項 -g
1、gcc -g **.c -o **
2、gdb gcc
(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++編輯器及調試工具操作命令的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。