2011-04-25 108 views
0

我想構建一個多模塊組件。我有兩個文件,即Fraction.cs和MyCalc.cs,並且都在同一個命名空間和另一個AssemblyInfo.cs中。我不知道如何製作makefile文件,所以我從我正在關注的書中複製了一個。這裏是內容構建多模塊組件

ASSEMBLY= MySharedAssembly.dll 

BIN=.\bin 
SRC=. 
DEST=.\bin 

CSC=csc /nologo /debug+ /d:DEBUG /d:TRACE 

MODULETARGET=/t:module 
LIBTARGET=/t:library 
EXETARGET=/t:exe 

REFERENCES=System.dll 

MODULES=$(DEST)\Fraction.dll $(DEST)\MyCalc.dll 
METADATA=$(SRC)\Assemblyinfo.cs 

all: $(DEST)\MySharedAssembly.dll 

# Assembly metadata placed in the same module as manifest 
$(DEST)\$(ASSEMBLY): $(METADATA) $(MODULES) $(DEST) $(CSC) $(LIBTARGET) /addmodule:$(MODULES: =;) /out:[email protected] %s 

# Add MyCalc.dll module to this dependency list 
$(DEST)\MyCalc.dll: MyCalc.cs $(DEST) $(CSC) $(MODULETARGET) /r:$(REFERENCES: =;) /out:[email protected] %s 

# Add Fraction 
$(DEST)\Fraction.dll: Fraction.cs $(DEST) $(CSC) $(MODULETARGET) /r:$(REFERENCES: =;) /out:[email protected] %s 

$(DEST):: 
! 
if !EXISTS($(DEST)) 
    mkdir $(DEST) 
!endif 

我明白整個很多,但不熟悉的語法。所以,當我試圖運行NMAKE我收到以下錯誤

生成文件(21):致命錯誤v1033:語法錯誤:「:」意外

我假設的東西是錯誤的線21,請幫助

回答

0

它終於工作時,我從互聯網上覆制代碼。它的工作原因是因爲有錯誤的行已經被返回鍵分成兩行。 $(DEST)\ $(ASSEMBLY):$(METADATA)$(MODULES)$(DEST) $(CSC)$(LIBTARGET)/ addmodule:$(MODULES:=;)/ out:$ @ %s

0
$(DEST):: 

這是錯誤的路線嗎?

+0

不,不是這個以$(DEST)\ $(ASSEMBLY)開頭的那個: – 2011-04-25 07:27:50

+0

我一直在嘗試不同的方法來使它工作,但無濟於事。然後我認爲目標錯誤代碼而不是makefile。它在http://msdn.microsoft.com/en-us/library/42y74zxt.aspx上說,錯誤代碼是U1033,並且它在makefile被文字處理器格式化時發生。現在我在記事本中創建了這個文件,可能它也意味着相同。我必須嘗試一些不同的東西,以使用像編輯這樣的舊式線條編輯器在dos提示符下重新創建文件。 – 2011-04-25 10:25:42

+0

nope我甚至嘗試在複製con的cmd提示符下創建文件,但它仍然不起作用! – 2011-04-25 10:57:23