【问题标题】:printing long compilation lines with MS NMAKE使用 MS NMAKE 打印长编译行
【发布时间】:2010-11-18 15:17:48
【问题描述】:

我有一个旧版 MS NMAKE Makefile,我需要修复其中的一些错误。

我希望使用"inline files" 的 NMAKE 技巧来调试一些非常长的命令行:

dep:
    cmd @<<tmpfilename
cmd_args..
<<

当换行时

dep:
    echo cmd @<<tmpfilename
cmd_args..
<<

NMAKE 抱怨线路太长。

为了查看 NMAKE 实际执行的命令行,我可以应用任何其他技巧吗?

【问题讨论】:

    标签: visual-studio makefile nmake


    【解决方案1】:

    为了保留保存命令行的临时文件,请在最后的 &lt;&lt; 之后附加 KEEP 关键字。例如

    dep:
        echo cmd @<<tmpfilename
    cmd_args..
    <<KEEP
    

    在这种情况下,发出nmake dep 后,名为tmpfilename 的文件将保留,并保留参数列表cmd_args

    请参阅MS KB article 中的示例 makefile 2。 Thisthis (warning:PDF)KEEPNOKEEP 关键字的解释,但我不确定它们是否是专门为 MS NMAKE 编写的。

    编辑:以上链接在 2019/08 年被替换,因为它们都已失效。新链接指向似乎包含 OP 在此答案中所指内容的存档副本。

    语法在Inline Files in a Makefile 中描述,特别是Reusing inline files

    【讨论】:

      【解决方案2】:

      普通的 unix make 支持“make -n”来显示它将运行的命令,对于 nmake,它是“make /n”。但是,make 通常也会尝试变得聪明,并且在任何情况下都会首先运行更新依赖项的规则,即使是“-n”,所以你可以尝试

      #dep:
      my_test_rule:
          cmd @<<tmpfilename
      cmd_args..
      <<
      

      然后运行“nmake /n my_test_rule”进行调试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-22
        • 1970-01-01
        相关资源
        最近更新 更多