首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NMake .PHONY模拟

NMake .PHONY模拟
EN

Stack Overflow用户
提问于 2010-12-22 20:12:35
回答 2查看 3.1K关注 0票数 2

我在Makefile中有一个目标test,在我的项目中有一个名为test的目录。在GNU Make中,我可以像这样声明它是假的:

代码语言:javascript
复制
.PHONY: all compile test clean docs static

有没有可能在NMake中做同样的事情?根据http://www.bell-labs.com/project/nmake/tutorial/s6.html的说法,我需要做的是

代码语言:javascript
复制
test: .VIRTUAL

但它不起作用:

代码语言:javascript
复制
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.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-22 20:23:34

我想这就是你要找的:

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

伪靶

伪目标是用来代替依赖行中的文件名的标签。它被解释为不存在的文件,因此是过期的。NMAKE假设伪目标的时间戳是其所有依赖项中最新的。如果它没有依赖项,则假定为当前时间。如果将伪目标用作目标,则始终执行其命令。用作依赖项的伪目标也必须在另一个依赖项中显示为目标。但是,该依赖项不需要有命令块。

伪目标名称遵循目标的文件名语法规则。但是,如果名称没有扩展名(即不包含句点),则可以超过文件名的8个字符限制,最长可达256个字符。

如果我理解正确的话,你在nmake中没有.PHONY (微软的,有很多nmake的风格)。而你发布的链接在顶部写着:

教程:阿尔卡特-朗讯nmake的一点帮助

也许你可以把一个测试和另一个称为测试?

票数 3
EN

Stack Overflow用户

发布于 2015-09-25 21:54:38

对于那些正在寻找解决nmake中缺少的.PHONY的方法的人:

您可以引入一个肯定是伪目标的目标(即选择一个与任何现有文件/目录都不匹配的名称),并使其依赖于您所指的.PHONY。例如:

代码语言:javascript
复制
test: .phony
        dir /b

.phony:

下面是输出:

代码语言:javascript
复制
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
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4509033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档