我正在尝试构建一个多模块程序集。我有两个文件,即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:$@ %s
# Add MyCalc.dll module to this dependency list
$(DEST)\MyCalc.dll: MyCalc.cs $(DEST) $(CSC) $(MODULETARGET) /r:$(REFERENCES: =;) /out:$@ %s
# Add Fraction
$(DEST)\Fraction.dll: Fraction.cs $(DEST) $(CSC) $(MODULETARGET) /r:$(REFERENCES: =;) /out:$@ %s
$(DEST)::
!
if !EXISTS($(DEST))
mkdir $(DEST)
!endif
我完全理解但不熟悉语法。因此,当我尝试运行nmake时,我收到以下错误
makefile(21):致命错误v1033:语法错误:':'意外
我假设第21行出了问题。请帮忙
答案 0 :(得分:0)
$(DEST)::
这是错误的一行吗?
答案 1 :(得分:0)
当我从互联网上复制paseted代码时,它终于奏效了。它起作用的原因是因为使用返回键将有错误的行分为两行。
$(DEST)\ $(ASSEMBLY):$(METADATA)$(MODULES)$(DEST) $(CSC)$(LIBTARGET)/ addmodule:$(MODULES:=;)/ out:$ @%s