【问题标题】:Building multimodule assemblies构建多模块组件
【发布时间】:2011-04-25 07:09:30
【问题描述】:

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

【问题讨论】:

    标签: c# makefile nmake


    【解决方案1】:
    $(DEST)::
    

    这是线路故障吗?

    【讨论】:

    • 不,不是这个,而是以 $(DEST)\$(ASSEMBLY) 开头的那个:
    • 我一直在尝试不同的方法使其工作,但无济于事。然后我想以错误代码而不是makefile为目标。它在msdn.microsoft.com/en-us/library/42y74zxt.aspx 上说错误代码是 U1033,它发生在 makefile 已由文字处理器格式化时。现在我在记事本中创建了这个文件,可能它也意味着相同。我必须尝试一些不同的方法来重新创建文件,例如使用旧样式的行编辑器(如 edit)在 dos 提示符下重新创建文件。
    • 不,我什至尝试在 cmd 提示符下使用 copy con 创建文件,它仍然不起作用!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2020-06-20
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 2015-01-05
      相关资源
      最近更新 更多