Windows上的qmake触摸功能

时间:2016-03-23 14:58:31

标签: qt qmake

qmake手册记录了一个touch函数来更新文件的时间戳,请参阅:touch(filename, reference_filename)。建议here更新文件的时间戳,例如:

version.commands = touch $$version.target

注意:qmake手册记录了两个参数,例如:

version.commands = touch $$version.target $$version.depends

但是,我无法使用任一调用使touch函数在Windows上运行。我怀疑qmake只是调用linux touch命令,因为它在Fedora 23上运行正常。

解决方法是在Windows上创建touch.cmd命令文件,例如:

@COPY /B %1+,, %1

并在.pro文件中使用以下内容:

version.commands = $$system(touch $$version.target)

但我更喜欢使用qmake touch函数......

.pro文件中调用它以便在Windows上运行的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

在使用qmake时,记住调用qmake时发生的事情以及随后的make / nmake调用过程中发生的事情至关重要。

在调用make时将执行version.commands =之后指定的任何内容。

另一方面,touch()是一个qmake函数,当你运行qmake时会调用它。

从今天开始查看Qt源代码dev分支,Qt本身只有4次使用touch(),全部在qtbase/mkspecs/features目录中,而在.commands的上下文中没有构造