除錯工具 gdb (The GNU Project Debugger)
--------------------------------------------------
為了除錯,必須在編譯軟體時加上 -g 參數才能讓 gcc 在編譯程式時,將除錯資訊加到程式裡。
另外 strip 指令為清除應用程式裡的除錯資訊,所以要檢查 makefiel 中是否有執行 strip。
BB 發表在 痞客邦 留言(0) 人氣(13,802)
二進位實用程式(objdump, readelf,ar, nm等)
as (assembler)
組譯器,當程式經過編譯器後,輸出的是組合語言,還需要經過組譯器把組合語言轉換成機械語言,通常輸出結果為目的檔(object file)。
ld (Linker)
連結器,把一隻程式所有的目的檔及其所需要的系統函式庫都連結起來,才會產生出一個完整可執行的程式檔。
BB 發表在 痞客邦 留言(0) 人氣(2,540)
#-------------------------------------------------------------------------------
#===================
# GCC
#===================
#處理編譯任務時,分成下面4個步驟:
BB 發表在 痞客邦 留言(0) 人氣(1,767)
C-lanugage的可攜性是公認的, 可以跨平台執行.
所以各平台之間的compiler應該儘可能的符合可攜性的要求.
但是為了提高執行效率, 符合各平台的機器特徵做一些特殊動作, 例如撰寫組合語言, 使用co-processor, 使用特殊記憶體配置, 使用特殊的compiler能力...等等會使用到#pragma 的語法以達到目的而又不影響沒有這些能力的平台或compile的編譯.
BB 發表在 痞客邦 留言(0) 人氣(6,643)
如何寫作makefile
在Unix系統上編譯tarball時,通常需要三步驟:
./configure
make
make install
BB 發表在 痞客邦 留言(0) 人氣(10,020)