0

我正在尝试构建一个多模块程序集。我有 2 个文件,即 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 行有问题。请帮忙

4

2 回答 2

0
$(DEST)::

这是线路故障吗?

于 2011-04-25T07:23:25.810 回答
0

当我从 Internet 复制粘贴代码时,它终于起作用了。它起作用的原因是因为有错误的行已使用返回键分为两行。

$(DEST)\$(ASSEMBLY): $(元数据) $(MODULES) $(DEST) $(CSC) $(LIBTARGET) /addmodule:$(MODULES: =;) /out:$@ %s

于 2011-04-27T10:32:57.603 回答