程式設計中關於編譯的原理及指令

2021-09-28 18:19:47 字數 1031 閱讀 9668

處理所有以#號開頭的檔案

標頭檔案(展開) 巨集定義(替換) 條件編譯(ifdefine)

gcc -e hello.c -o hello.i
把c轉換成彙編,且進行語法檢查

gcc -s hello.i -o hello.s
把彙編**轉換成二進位制

gcc -c hello.s -o hello.o
鏈結**用到的庫檔案

gcc hello.o -o hello
需要安裝對應的環境,只編譯檔案本身,檔案較小(gcc預設動態)

gcc -fpic -shared f1.c f2.c -o lib***.so

gcc hello.c -o hello -l . -l ***

將編譯出的動態庫移動到usr/lib中

不依賴環境,檔案本身和庫檔案一起編譯,檔案較大

gcc hello.c -o hello -static
###編譯靜態庫

gcc -c ***.c ***.c(生成***.o ***.o)

ar -crv libmylib.a ***.o ***.o(做成靜態庫)

static表示靜態編譯 -l表示靜態庫編譯 -l表示庫名(不含lib)

**示例:

target=hello#變數

object=hello.o f1.o f2.o#變數

$(target)

:$(object)

#一般格式

gcc $(object)

-o $(target)

#makefile隱含規則:當target中有*.o檔案時會自動搜尋*.c檔案編譯成*.o

.phony:clean#偽**

clean:

rm *.o $(target)

關於Delphi中預編譯指令的使用方法

在delphi中,也有與c相似的預編譯指令,雖然該類指令只在當前的單個檔案有效 也有可能是筆者未全面了解該類指令的真正用法 但是這一類指令對於進行多版本的製作工作 如從標準版中出學習版 確實有著相當不錯的用途。一 指令介紹 1 define指令 格式 說明 用於定義乙個在當前單元有效的符號 symb...

關於Delphi中預編譯指令的使用方法

在delphi中,也有與c相似的預編譯指令,雖然該類指令只在當前的單個檔案有效 也有可能是筆者未全面了解該類指令的真正用法 但是這一類指令對於進行多版本的製作工作 如從標準版中出學習版 確實有著相當不錯的用途。一 指令介紹 1 define指令 格式 說明 用於定義乙個在當前單元有效的符號 symb...

0909關於編譯原理的理解

1 編譯原理學什麼?答 編譯原理學習做程式的編譯器的原理和方法,內容包括語言和文法 詞法分析 語法分析 語法制導翻譯和中間 生成 儲存管理 優化和目標 生成等內容。2 為什麼學編譯原理?答 編譯原理蘊含著電腦科學中解決問題的思路 形式化問題和解決問題的方法,對軟體的設計開發具有一定的指導作用,學習它...