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上运行的正确方法是什么?
答案 0 :(得分:0)
在使用qmake时,记住调用qmake时发生的事情以及随后的make / nmake调用过程中发生的事情至关重要。
在调用make时将执行version.commands =
之后指定的任何内容。
另一方面,touch()
是一个qmake函数,当你运行qmake时会调用它。
从今天开始查看Qt源代码dev分支,Qt本身只有4次使用touch(),全部在qtbase/mkspecs/features
目录中,而在.commands
的上下文中没有构造