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/

10-12 19:00