在編譯之前我們需要在系統裡安裝g++ gcc,它們就是linux下的c++/c的編譯器。
**如下
sudo apt-get install build-essential
#include
using namespace std;
int main()
void hello::display()
在g++中有乙個引數-c可以只編譯不連線,那麼我們就可以按如下順序編譯檔案
g++ -c hello.cpp -o hello.o
g++ -c myfirst.cpp -o myfirst.o
g++ myfirst.o hello.o -o myfirst
你是否會問,如果是乙個專案的話,可能會有上百個檔案,這樣的編譯法,人不是要累死在電腦前嗎,或者等到你編譯成功了,豈不是頭髮都白了,呵呵,所以我們要把上述的編譯過程寫進以下乙個文字檔案中:
linux下稱之為makefile
[code]
myfirst: myfirst.o hello.o
g++ myfirst.o hello.o -o myfirst
hello.o:hello.cpp
g++ -c hello.cpp -o hello.o
myfirst.o:myfirst.cpp
g++ -c myfirst.cpp -o myfirst.o
[code]
存目錄為myfirst,在終端輸入:make myfist
gdb偵錯程式是linux系統自帶的,他可以讓你觀察另乙個程式在執行時的內部活動,或程式出錯時發生了什麼。
程式出現了錯誤可是所有程式設計師共同的敵人,在編寫程式時我們應該盡量的去避免錯誤的出現,不過編寫的時候再怎麼都不可避免的出現這樣那樣的錯誤,對程式進行必要的除錯是乙個好主意,那我們怎麼來除錯程式呢,看下面:
在這裡我修改下,要想下面可以除錯,在上面編譯的時候必須加上引數 -g,g++ -g hello.cpp -o hello
1)編譯除錯程式。將多個原始檔編譯連線成乙個可執行檔案 gc
c−gh
ello
.c−o
hell
o2)啟
動gdb
除錯。再
對可執行
檔案用g
db進行
除錯gdb ./檔名 如$gdb ./hello
以下為除錯狀態下的可以用到的命令(也可以僅輸入命令的首字母,如break可簡為b),尖括號中為說明
list 《顯示源**》
break 行號 《設定斷點》
run < (設好斷點後)執行程式 >
continue 《繼續從斷點處執行》
print 變數 《除錯時檢視變數的值》
until 《結束當前迴圈》
watch 《在程式中設定乙個監測點》
delete 行號 《刪除乙個斷點或監測點》
step 《單步執行,可跟蹤到函式內部》
finish < 如果已經進入了某函式,而想退出該函式返回到它的呼叫函式,可使用該命令》
next 《單步執行,不可跟蹤到函式內部》
whatis 變數或函式 《顯示某個變數或函式的型別》
jump < 在源程式中的另一點開始執行》
set variable < 給變數賦值》
info source 《得知當前檔案的絕對路徑》
quit 《退出》
break命令設定斷點有如下四種形式:
1、(gdb)break 要指定的行
2、(gdb)break 要指定的函式名
3、(gdb)break 要指定的行或函式名 if 條件
4、(gdb)break 要指定的例程routine_name的入口處
如果該程式是由很多原始檔構成的,你可以在各個原始檔中設定斷點,而不是在當前的原始檔中設定斷點,其方法如下:
(gdb)break 檔名:行號
(gdb)break 檔名:函式名
要設定乙個條件斷點,可以利用break if 命令,如果條件是真,則設定斷點如下所示:
(gdb)break 行或函式名 if 條件
例: (gdb)break 46 if testsize == 100
linux 下g 和 gdb的使用總結
用gdb編譯程式時,首先在編譯程式時加 g gcc g test.c o test 執行方法有兩種 gdb test 或者gdb file test gdb 可以做什麼?1 gdb 可以以除錯模式啟動程式。2 gdb 可以 attach 到正在執行的程序 3 gdb 可以分析 core 檔案中的資訊...
gdb的簡單使用
gdb簡介 gdb的簡單使用 gdb execfile 可執行檔案 不過在要用gdb之前,編譯時要加上 g 選項 1 l list命令的簡寫 例如 l 12 將會顯示第12行 以及它前後若干行 l main 將顯示main函式開頭附近十行 不加引數,直接 l 會顯示下10行 list 將顯示上10行...
gdb的簡單使用
1.檔案清單 list 簡寫l list line 列出line行後面的10行 list 列出當前行後面的10行 list 列出當前行前面的10行 list function name 列出函式名為function name的10行 2.執行程式 run 簡寫r run 後面可加引數 set arg...