C++(3)--编译、gdb调试
3--編譯和執行過程
- 1.編譯
- 2.gdb調試
GCC是一個編譯套件,是一個以"gcc"命令為首的源碼施工隊。施工隊的成員有gcc、cpp、as、ld四個成員
-o 指定輸出文件的名字
1.編譯
(win操縱系統,老九課堂筆記)
1.預處理–將頭文件(.h)的具體內容展開至源文件中;刪除注釋;添加行號和文件標識等;預處理完產生一個.ii文件(c語言編譯將產生一個.i文件)
cpp demo.cpp > demo.ii
cpp 為 C Preprocessor的縮寫, >表示輸出到文件
還有另外兩種命令也可以用于產生.ii 文件,其中-o參數用于指定輸出文件命
g++ -o demo.ii -E demo.cpp
g++ -o demo.ii demo.cpp
2.編譯–對.ii文件進行詞法/語法/語義分析,生成相應的匯編文件,.s文件
g++ -o demo.s -S demo.ii
3.匯編–將匯編文件轉換成二進制目標文件.o .obj結尾
as -o demo.o demo.s
g++同樣可以實現
g++ -o demo.o demo.s
4.連接–將目標文件和C++庫函數連接,將涉及到的庫代碼合并到目標代碼中;
g++ -o demo.exe demo.o
生成demo.exe可執行文件
(mac+vscode)
在vscode 終端上輸入
g++ main.cpp -o main
"/Users/chenyingying/CppProject/Helloworld/"main
即可運行,(猜測)第一條語句是不是包括了預處理,編譯,匯編,連接于一體,生成mac/linux下可執行文件main.out文件。輸入目錄運行對應的可執行文件。
2.gdb調試
GNU debugger–Richard Stallman設計的
要想通過gdb調試,必須在編譯時加上調試接口,即-g
gcc -g ./rubbish.c input.c readfile.c -o rubbish19_debug
gdb ./rubbish19_debug
GDB 的一些常用指令:
MAC上使用gdb(完美解決)
(證書沒有添加成功,sudo應該可以跑)
總結
以上是生活随笔為你收集整理的C++(3)--编译、gdb调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(04)-- 典型CNN结构(L
- 下一篇: 算法(10)-leetcode-expl