程式的編譯與執行(gcc,g )

2021-09-25 14:48:02 字數 1196 閱讀 4823

一、gcc與g++編譯 *.c檔案與*.cpp檔案的方法

gcc: *.c:按c語法

g++:*.c: 按c++語法

*.cpp: 按c++語法

二、編譯與執行的流程

(1) 預編譯 :

c:gcc -e main.c -o main.i
(2) 編譯:

gcc -s main.i -o main.s
(3) 彙編:

gcc -c main.s -o main.o
gcc main.o -o main
gcc -o main main.c
內部具體流程可以看另一篇部落格——編譯鏈結過程

三、makefile 使用 管理工程 實現自動化編譯

示例:對 main.c add.c max.c 三個檔案進行編譯(注意: gcc 前面必須是 table 建縮排)

all     main

main : main.o add.o max.o

gcc -o main main.o add.o max.o

main.o : main.c

gcc -c main.c

gdd.o : add.c

gcc -c add.c

max.o : max.c

gcc -c max.c

clean:

rm -rf *.o main

四、gdb除錯工具

除錯時使用的是 debug 版本,在 linux 上編譯時要加上 「-g」引數

gdb 命令:

命令意義

l顯示**

b加斷點

info break

顯示斷點資訊

p列印變數資訊

r執行程式 (在一次除錯中只能進行)

c繼續執行(遇到斷點停止)

s進入函式

finish

退出函式

bt函式呼叫棧關係

display

持續列印

strace

跟蹤系統呼叫

ltrace

跟蹤程式執行的庫函式

core gdb test core.pid

檔案除錯 (程式崩潰)

如何用gcc g 編譯並執行C C 程式

gcc命令用於c程式的編譯,而g 用於c 程式的編譯,有時可能g 沒有安裝,可以sudo aptitude install g 安裝完成之後就可以使用了。gcc sourc o target g sourc o target ps 在使用命令之前,最好確認一下gcc和g 的版本,讓它們的版本保持一致...

gcc g 編譯 wxwidgets的引數

簡單點 gcc編譯c程式,g 可編譯c和c 程式。a.可行的命令格式 1.g main.cpp o c.out wx config cflags libs 2.g wx config cflags main.cpp o a.out wx config libs g 或 gcc的引數格式好像為 g 搜...

gcc g 編譯的那些事

嚴重宣告 本帖絕非技術貼,只是在g 編譯時遇到些百思不得其解的錯誤,而且這種錯誤應該很少人犯,寫下來僅供你實在找不錯出錯地方時的 柳暗花明又一村 我在編譯時總是提示 cprocessmodule.cpp中68行乙個變數 o typename 未宣告 注 cprocessmodule.cpp在src目...