0

マルチモジュール アセンブリを構築しようとしています。Fraction.cs と MyCalc.cs という 2 つのファイルがあり、両方とも同じ名前空間と別の 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

インターネットからコードをコピーして貼り付けたところ、ようやく機能しました。うまくいったのは、エラーのある行がリターンキーで2行に分かれているからです。

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

于 2011-04-27T10:32:57.603 に答える
0
$(DEST)::

これは回線がおかしいのでしょうか?

于 2011-04-25T07:23:25.810 に答える