Debian下編譯 執行和除錯C 程式

2021-06-04 05:39:15 字數 1496 閱讀 5821

本人使用的是debian 6.04testing版

首先安裝g++(需要root許可權):

gksu apt-get install g++

安裝完成後會出現:

update-alternatives: 使用 /usr/bin/g++ 來提供 /usr/bin/c++ (c++),於 自動模式 中。

編寫測試程式:

#include

using namespace std;

int main(int argc, char **argv)

儲存到當前目錄下,名稱為test.cpp。

編譯test.cpp為test.o:

g++ -c test.cpp

執行完畢後,當前目錄下會出現乙個test.o檔案,它就是test.cpp的目標(obj)檔案。

g++ -o test.exe test.o

執行完畢後,當前目錄下會出現乙個test.exe檔案。

注:上面的兩步可合併為一步(不過不會生成obj檔案):

g++ -o test.exe test.cpp

執行test.exe:

./test.exe

可以在命令列中看到test(如果看不到,可能是你沒有<

安裝偵錯程式gdb(需要root許可權):

gksu apt-get install gdb

除錯執行test.exe:

gdb test.exe

執行後,進入gdb命令列狀態;

輸入run+回車,可直接執行test.exe

為了除錯,我們在main的開始處下個斷點:

break main

輸入run,會出現類似如下的資訊:

breakpoint 1, 0x080486b7 in main ()

這說明,gdb成功地斷在了main的開始。

我們可能想要看一下main中的引數argc:

print argc

結果發現,gdb說未找到符號表;這是因為我們在編譯test.cpp時沒有生成除錯資訊導致。

為了除錯,重新編譯(首先輸入q退出gdb):

g++ -o test.exe test.cpp -g

然後在按照上面的方法進入gdb,在main的開始處下斷點,然後run;處於中斷狀態時,再輸入print argc,會顯示:

$1 = 1

安裝make(需要root許可權):

gksu apt-get install make

makefile:參考《跟我一起寫makefile.pdf》

test.exe : test.o

g++ -o test.exe test.o

test.o : test.cpp

g++ -c test.cpp -g

clean :

rm test.exe test.o

注意:g++前面的是tab,否則會錯

將上面的內容儲存為makefile

在命令列輸入make即可編譯鏈結,並生成test.exe

Linux 下C編譯和執行過程

1.預處理階段 gcc e o example.i example.c將宣告在標頭檔案中的內容加到生成的.i檔案中 2.編譯階段 gcc s o example.s example.i將.i檔案內容編譯成組合語言後生成.s檔案 3.彙編階段 gcc o example.o c example.c將....

Debian下編譯Linux核心

一直以為linux核心的編譯是一件很複雜的事情,雖然有幾次也實在是按捺不住衝動,要自己來編譯一下試試,但是類似的幾次嘗試都是以失敗而告終。在不久前,看到過一些關於debian下編譯核心的文章,說得很詳細,而且似乎看起來也並不是很複雜的樣子,於是決定自己編譯一下核心,畢竟對於使用linux的人來說沒有...

Debian下編譯安裝MPlayer

debian下編譯安裝mplayer mplayer的原始碼包可以在 2 解壓原始碼包 tar xvf mplayer 1.0pre8.tar.bz2 4 安裝解碼器 建立相應的目錄 mkdir usr local lib codecs 以rot身份執行 進入相應的目錄 cd usr local l...