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 ...