makefile格式 實踐一

2022-03-01 17:35:02 字數 1329 閱讀 6937

一直知道makefile是為了讓工程更合理化編譯和輸出~

從未在unix下自己寫這個;在windows開發中一直用ide開發,ide自帶;偶而寫寫小東西,也是用bat方式直接編譯。

ps:bat方式就是自己寫編譯命令;與makefile的區別是前者無**件是否發生改變都編譯,後者是當編譯成功後若檔案未發生任何改動,不會編譯;較之於前者,後者編譯效率高的多。

以前簡單學習了makefile,沒有動手實踐過;今天有興致簡單實踐一把。

實際環境:

net cs**

nmake

編寫簡單**:helloworld

1

using

system;

2using

system.collections.generic;

3using

system.text;45

namespace618

}19}20

第一次編寫makefile,如下:

1

all:helloworld

.exe23

helloworld

.exe

:helloworld.cs

4csc helloworld.cs

56clean:7-

del*

.exe

直接用命令:nmake helloworld.makefile

報錯:fatal error u1034

想了半天,嘗試性的做了如下調整:

1

all:helloworld

.exe23

helloworld

.exe

:helloworld.cs

4csc helloworld.cs

56clean:7-

del*

.exe

再使用命令,完全編譯通過

仔細看看兩個makefile,發現第四行和第七行有乙個空格的差異。

target...:prerequisites...

command

【總結】:

實際的格式:

target...:prerequisites...

command

另外不知道其他情況下,比如unix下是否有這個問題,也許僅僅只有nmake才有這個錯誤。有待後續測試結論

【2010-12-28】

最後,還值得一提的是,在makefile中的命令,必須要以[tab]鍵開始。

此話已說明命令在格式中的特殊起始點。上面所說" "空格不是標準的格式,可用而已

Makefile檔案基本格式

以下是makefile的基本模板 指定編譯器 cc g 指定編譯引數 cflags std c 11 指定標頭檔案路徑,此處用於指定非標準庫的標頭檔案路徑 inc i.i usr include 指定要鏈結的動態庫或靜態庫 l是指定動態庫路徑,非標準的動態庫需要此引數 libs lm ldl l m...

Makefile檔案格式

make的工作主要依賴於乙個叫makefile的檔案。makefile檔案描述了整個程式的編譯 鏈結等規則。targets prerequisites command targets 目標 prerequisites 依賴 command 命令,命令需要使用 tab 鍵空格 例 led.elf le...

makefile 程式設計一

什麼是makefile?或許很多winodws的程式設計師都不知道這個東西,因為那些windows的ide都為你做了這個工作,但我覺得要作乙個好的和professional的程式設計師,makefile還是要懂。這就好像現在有這麼多的html的編輯器,但如果你想成為乙個專業人士,你還是要了解html...