2

testMakefileにターゲットがありtest、プロジェクトにディレクトリがあります。GNU Makeでは、次のように偽物であると宣言できます。

.PHONY: all compile test clean docs static

NMakeで同じことをすることは可能ですか?http://www.bell-labs.com/project/nmake/tutorial/s6.htmlによると、私はする必要があります

test: .VIRTUAL

しかし、それは機能しません:

F:\SomePath>nmake test /f msvc.mk

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1073: don't know how to make '.VIRTUAL'
Stop.
4

2 に答える 2

8

nmakeでこの不在の.PHONYを回避する方法を探している人のために:

間違いなく疑似ターゲットになるターゲットを導入し(つまり、既存のファイル/ディレクトリのいずれとも一致しない名前を選択する)、それを.PHONYの意味に依存させることができます。例えば:

test: .phony
        dir /b

.phony:

そして、これが出力です:

D:\Temp\nmake-phony>nmake

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        dir /b
Makefile
test
于 2015-09-25T13:54:37.680 に答える
3

私はこれがあなたが探しているものだと思います:

http://msdn.microsoft.com/en-us/library/7sb2acw1%28v=VS.71%29.aspx

疑似ターゲット

疑似ターゲットは、依存関係行のファイル名の代わりに使用されるラベルです。存在しないファイルとして解釈されるため、古くなっています。NMAKEは、疑似ターゲットのタイムスタンプがそのすべての依存関係の中で最新のものであると想定します。扶養家族がいない場合は、現在の時刻が想定されます。疑似ターゲットをターゲットとして使用する場合、そのコマンドは常に実行されます。依存関係として使用される疑似ターゲットは、別の依存関係のターゲットとしても表示される必要があります。ただし、その依存関係にコマンドブロックを含める必要はありません。

疑似ターゲット名は、ターゲットのファイル名構文規則に従います。ただし、名前に拡張子がない場合(つまり、ピリオドが含まれていない場合)、ファイル名の8文字の制限を超える可能性があり、最大256文字の長さになる可能性があります。

私がそれを正しく理解しているなら、あなたはnmakeに.PHONYを持っていません(Microsoftのもの、そこには多くのnmakeフレーバーがあります)。そして、あなたが投稿したリンクは、その上に次のように述べています。

チュートリアル:アルカテル・ルーセントnmakeのちょっとした助け

たぶん、1つのテストと他の1つのテストを呼び出すことができますか?

于 2010-12-22T12:23:33.827 に答える