小華的部落格: 2009/10/4 - 2009/10/11

搜尋此網誌

星期五, 10月 09, 2009

NMAKE (1)

IDE用習慣的人應該很少會去使用到makefile,但是為了生存下去,所以我也開始學習這個東西的用法.

而為了測試NMAKE.EXE 的使用方式,所以自己就會去做一些小實驗來了解一些東西,然後順便把他紀錄下來。

底下是我為了想知道$** 跟$@ 是代表什麼用意時所做的一些實驗,因為是初學者,所以各位看官就別取笑小弟我的土法煉鋼法喔~

1.準備test.mak,其內容如下:

SOURCE_FILE_NAME = test.mak
DEST_DIR = c:\maktest
BASE_NAME = test

$(DEST_DIR)\$(BASE_NAME).bin : $(SOURCE_FILE_NAME)
echo $**
echo $@
copy $** $@

all: $(BIN_DIR)\$(BASE_NAME).bin

2.進入NAMKE環境,鍵入:


C:\maktest\>NMAKE /F test.mak

3.結果

echo test.mak
test.mak
echo c:\maktest\test.bin
c:\maktest\test.bin
copy test.mak c:\maktest\test.bin
1 file(s) copied.

C:\maktest>

4.結論

可以看的到$** 是代表$(SOURCE_FILE_NAME)
而$@ 看起來是代表$(DEST_DIR)\$(BASE_NAME).bin

所以copy $** $@ 等同於 copy test.mak c:\maktest\test.bin

從makefile寫法來看:
$**應該就是[dependency]
$@ 應該就是[target]

[target]: [dependency] [dependency]
[TAB][rule] <--要注意,寫rule之前要加tab.
[TAB][rule]

星期二, 10月 06, 2009

C語言原來不能亂放空白字元!


寫Code的過程中發現原來巨集後面不能加"空白"字元!

見下圖中紅色框框的地方,如果有空白字元會Compiler error.