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 上工作的正确方法是什么? 最佳答案
在使用 qmake 时,记住调用 qmake 时发生的事情以及随后的 make/nmake 调用期间发生的事情至关重要。version.commands =
之后指定的任何内容都将在调用 make 时执行。
另一方面,touch()
是一个 qmake 函数,它会在您运行 qmake 时被调用。
从今天的 Qt 源代码 dev 分支来看,在 Qt 本身中只有 4 次使用 touch(),都在 qtbase/mkspecs/features
目录中,而在 .commands
构造的上下文中没有。
关于qt - windows上的qmake触摸功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36181618/