ubuntu C 編碼除錯相關

2021-07-25 15:11:48 字數 993 閱讀 3349

g++ -g為了除錯用的

加個-g 是為了gdb 除錯用

g++   -i  尋找標頭檔案選項  (linux預設路徑:標頭檔案在/usr/include/下),不在這個路徑下就要用-i指定。

gcc  foo.cpp  -i/home/include/   -o  foo

-l   庫依賴選項       (linux預設路徑:庫檔案在/usr/lib/下),不在這個路徑下就要用-l指定。

g++  foo.cpp  -l/home/lib/  -lfoo  -o   foo

庫就是將原始檔編譯之後生成的目標檔案的集合。

庫命名以lib開頭。

庫有靜態庫(通常以.a結尾)和動態庫(通常以.so結尾)

預設情況下,g++以動態庫形式連線。如果要靜態庫連線則要用-static指定(g++ foo.cpp  -l/home/lib/  -static  -lfoo  -o  foo)

-idirectory 指定額外的標頭檔案搜尋路徑directory。 

-ldirectory 指定額外的函式庫搜尋路徑directory。   

-llibrary 連線時搜尋指定的函式庫library。

直接跟 沒有空格!

比如用到protobuf的標頭檔案和庫檔案:

g++ -0 *** ***xx.cpp  -i~/protobuf_install/include  -l~/protobuf_install/lib  -lprotobuf

-m 生成檔案關聯的資訊。包含目標檔案所依賴的所有源**你可以用gcc -m hello.c 

來測試一下,很簡單。  

-mm 

和上面的那個一樣,但是它將忽略由#include造成的依賴關係。 

-md 

和-m相同,但是輸出將匯入到.d的檔案裡面 

-mmd 

和-mm相同,但是輸出將匯入到.d的檔案裡面 

ldd命令用於列印程式或者庫檔案所依賴的共享庫列表。

來自: 

gdb除錯相關

3.2.1 斷點的工作原理 在本書的所有地方都使用了status breakpoint異常,尤其是在本章中,但卻沒有很明確地解釋這個異常的引發方式。現在,我們就來解釋如何在程序中產生這個異常。在x86指令集中包含了乙個特殊的指令int 3,這個指令將在處理器上產生硬體中斷status breakpo...

C 除錯相關

一 編譯時的錯誤捕捉 經典的隱式型別轉換問題 cpp view plain copy print?include stdafx.h class class banana class orage orage orage const orage orage const const banana pban...

(四)除錯相關

使用的除錯方法有debug及打log,目前已知。對於debug,eclipse對應的除錯方法快捷鍵如下 單步 f6 進入 f5 跳出 f7 斷點跳 f8 結束除錯 ctrl f2 log使用的函式 android.util.log常用的方法有以下5個 log.v log.d log.i log.w ...