如何在makefile中创建目录

Col*_*len 4 nmake makefile visual-c++

我正在使用Visual Studio 2005 nmake,我有一个像这样的测试makefile:

sometarget:
    -mkdir c:\testdir
Run Code Online (Sandbox Code Playgroud)

我想始终创建目录,而不必指定'sometarget'.例如,我可以这样做:

!if [if not exist c:\testdir\$(null) mkdir c:\testdir]
!endif
Run Code Online (Sandbox Code Playgroud)

但这需要两行,我真的只想做"-mkdir c:\ testdir".如果我只用"-mkdir c:\ testdir"替换它我从nmake得到一个错误 - "致命错误U1034:语法错误:分隔符丢失".

我怎么能总是执行mkdir,而不是搞乱!if []的东西?

Aar*_*ela 9

我认为这会奏效:

 -@ if NOT EXIST "dir" mkdir "dir"
Run Code Online (Sandbox Code Playgroud)


小智 8

让总是想要根据目标做事.它不是一般的脚本工具.它查看目标并检查它们是否存在.如果目标不存在,则执行该目标的命令.

通常的方法是创建一个永远不会由make脚本生成的虚拟目标,因此每次make运行时都必须执行相关命令.

或者,您可以将命令添加到批处理文件,然后调用您的make文件.