簡單說明gcc和arm linux gcc的區別

2021-08-05 22:37:30 字數 555 閱讀 3440

首先了解一下編譯的過程:乙個原始檔經過gcc編譯器編譯後生成可執行檔案其實經歷了四個過程:

* 預處理(pre-processing)

* 編譯(compiling)

* 彙編(assembling)

* 鏈結(linking)

而gcc經過編譯後生成的可執行檔案(最後也就是一大堆機器碼)是在linux作業系統之上執行的,也就是說經過gcc編譯器最後生成的一大堆機器碼只有linux作業系統認識,但是我們做arm裸機實驗時soc上是沒有linux作業系統的,所以這時候arm裸機只認識經過arm指令集生成的機器碼。這時候我們要想讓可執行檔案在arm裸機上執行就需要使用arm-linux-gcc (交叉編譯工具)編譯生成的可執行檔案。字面理解arm-linu-gcc的意思也就是編寫環境是使用linux主機編寫的,然後編譯後要在arm上執行的可執行檔案。

簡單說明 cdecl stdcall和

cdecl 是 c declaration 的縮寫,表示 c 和 c 預設的函式呼叫約定。是c c 和mfcx的預設呼叫約定。stdcall是standard call的縮寫,是c 的標準呼叫方式,當然這是微軟定義的標準,stdcall通常用於win32 api中 可檢視winapi的定義 fast...

copy和mutableCopy簡單說明

mutablecopy copy和mutablecopy來自nsobject,適用於所有的物件 源物件型別 拷貝方法 副本物件型別 是否產生了新物件 拷貝型別 ns copy ns 否 淺拷貝ns mutablecopy nsmutable 是深拷貝 nsmutable copy ns 是 深拷貝n...

FormatMessage簡單說明

常用引數簡介.formatmessage format message from system format message allocate buffer,null,lval,null,lptstr hlocal,0,null 第乙個引數是標誌,告訴這個formatmessage函式,我想要的特點...