Windows10上gsh.exe下nmake的异常行为

时间:2018-07-19 06:22:52

标签: shell cmd prompt nmake

请帮助我解决应用程序所面临的以下问题。

我已经为Windows编写了自己的外壳程序,名为gsh,当前可实现大多数CMD.EXE功能。到目前为止,除了我在NMAKE程序中遇到的问题外,我在GSH下执行的所有活动都与CMD相同。

这是测试场景。我在命令提示符下使用“ nmake all”构建了几个c ++项目。在CMD下,nmake运行平稳(这意味着它可以构建所有需要构建的目标)。但是,在GSH下,namke会构建第一组目标(即* .cpp的所有* .obj),而不是依赖于新bult * .obj的* .exe。我必须第二次运行“ nmake all”来构建* .exe。 如果我在“ nmake all”之前运行“ nmake clean”,则所有目标均构建良好。

我100%确定makefile是正确的。我检查了GSH和CMD之间的所有环境变量,它们是相同的。我还检查了生成文件上的日期,它们看起来不错(这意味着生成文件上的日期较新,并且* .exe的日期早于依赖的* .obj的日期)。我还可以确认“ nmake all”正在运行时,它不会调用外壳程序的另一个副本(执行其任务,这可能会导致问题)。注意:在一个复杂的makefile上,我可以看到nmake发出system(...)函数,该函数调用ComSpec env var指向的外壳,可以将其定向到GSH或CMD,而行为上没有任何明显的改变。 >

感谢您对上述根本原因有任何想法。

欢呼!,gt

0 个答案:

没有答案