首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查看nmake发出的命令

查看nmake发出的命令
EN

Stack Overflow用户
提问于 2015-06-22 19:39:30
回答 2查看 814关注 0票数 4

以一个nmake项目为例,特别是Ruby,并尝试查看使用了哪些命令来构建它。nmake说明它正在编译哪些文件,但没有说明它使用哪个命令行来编译每个文件。与明显相关的选项最接近的是/D,但这并没有给出太多的解释。

有没有办法,通过向nmake或其他地方提供一些选项,来查看它到底发出了什么命令?

EN

回答 2

Stack Overflow用户

发布于 2015-08-31 06:44:40

没有使所有命令被回显的通用方法,例如使用命令选项。然而,您可以自己构建这样一个选项,但它确实涉及到对Makefile进行全局编辑。但是,通过巧妙地使用编辑器(例如匹配正则表达式的编辑器),您可以快速进行更改并获得所需的内容。

这项技术在这篇博客文章中进行了描述:,第5节。

每个makefile实现都允许一个命令由一个@符号执行,这会导致回声被禁用。方法是使用宏来代替@元件,如本例中的Makefile:

代码语言:javascript
复制
!MESSAGE Makeflags=$(MAKEFLAGS)

!IFNDEF LOG
L=@
!ELSE
!  IF  [ IF /I $(LOG) == yes ( EXIT 1 ) ELSE ( EXIT 0 ) ] == 0
L=@
!ELSE
L=
!ENDIF
!ENDIF
# To be a valid makefile it must have some rules to perform
all:
    $(L)echo;This is a command being executed

这可以这样演示:

代码语言:javascript
复制
C:\Users\Brian>nmake /NOLOGO
Makeflags=L
This is a command being executed

C:\Users\Brian>nmake /NOLOGO LOG=yes
Makeflags=L
        echo;This is a command being executed
This is a command being executed

C:\Users\Brian>nmake /NOLOGO LOG=no
Makeflags=L
This is a command being executed

然后,剩下的就是将命令开头的每个@更改为“$(L)”(当然,保留所有其他@符号不变!)。

票数 3
EN

Stack Overflow用户

发布于 2018-11-01 16:23:18

我使用/N显示命令行,使用/A运行所有目标(不仅仅是过期的目标)。

代码语言:javascript
复制
> nmake /F example.mak /A /N

文档:https://msdn.microsoft.com/en-us/library/afyyse50.aspx

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30979065

复制
相关文章

相似问题

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