關於linux中c 的編譯

2021-06-22 08:03:18 字數 491 閱讀 4090

伺服器上經常用到linux下的c++程式設計,這不像在windows下對c++的編譯那樣,按下編譯鍵就好了,在linux下你得懂的一些c++編譯的原理:

編譯有過程的:

1.預處理(簡單點說就是對c++中的標頭檔案進行預處理,將.h的地方用**補充完整)

即使很簡單的helloworld程式預處理出來的檔案也是很長的。

2.彙編

(將上面也處理出來的檔案進行組合語言的翻譯)

3.目標檔案的生成(將上面得到的組合語言的檔案進一步翻譯成計算機認識的二進位制**)

4.鏈結成可執行檔案(將上面生成的機器**鏈結成為可執行檔案,包括各個目標檔案的鏈結和靜態、動態庫的鏈結)

上面講的是一些簡單的編譯原理。

我現在遇到的問題是:在編譯時用這樣的引數-i /usr/local/mpich/include 才能找到mpi標頭檔案,那麼怎麼樣修改path這樣的環境變數達到,不要-i這樣的引數也能使得編譯器自動尋找到頭檔案呢?

C 預編譯中關於位元組對齊的問題

通過 pragma pack n 改變c編譯器的位元組對齊方式 在c語言中,結構是一種復合資料型別,其構成元素既可以是基本資料型別 如int long float等 的變數,也可以是一些復合資料型別 如陣列 結構 聯合等 的資料單元。在結構中,編譯器為結構的每個成員按其自然對界 alignment ...

關於ubuntu下的c 編譯

剛開始使用ubuntu下的g 編譯c 程式,這裡只是簡單說以下自己的一些小小感受吧。1.環境準備 在ubuntu中要想編譯c程式可以安裝gcc編譯器,編譯c 的話就不能使用gcc了,要使用g 編譯器。安裝gcc或是g 可以在新立得軟體包管理器中直接搜尋後安裝或是使用終端文字命令 這樣會顯得專業些,呵...

關於C 的編譯與執行

每一種程式語言,要想執行,就必須要轉換為目標作業系統能夠理解的語言才能執行,這種語言叫做本機 native code c 也是一樣的,也要做這樣的轉換,但是它不是一處到位的,在.net framework這個平台下,該過程分為兩個階段。1 c 編譯為中間語言 的階段 在編譯c 時,並不是立即建立了本...