2016-03-23 14 views
2

qmakeマニュアルドキュメントtouchファンクションを使用してファイルのタイムスタンプを更新する機能は、touch(filename, reference_filename)を参照してください。例えば、ファイルのタイムスタンプを更新するhereをお勧めします。ウィンドウ上のqmake touch機能

version.commands = touch $$version.target 

注:qmakeのマニュアル文書二つのパラメータ、例えば:

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

しかし、私はtouch機能を取得することはできませんがいずれかの呼び出しを使用してWindows上で作業します。

@COPY /B %1+,, %1 

とで次のコマンドを使用します。それはFedoraの23

回避策は、Windows上でtouch.cmdコマンドファイルを作成することで、例えば上で正常に動作しますので、私は、qmakeは単にlinuxtouchコマンドを呼び出していると思われます.proファイル:

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

しかし、私はqmakeのtouch機能を使用することを好むだろう...

.proファイルでWindowsを動作させる正しい方法は何ですか?

+0

システム(@COPY/B file.name "+ ,,") - 私のためにうまく働いた – oklas

+0

それは私のためにも@oklasでも働いていましたが、まだ分かりにくい 'qmake touch'ではありません。ロールオン[Windows 10のbash](https://msdn.microsoft.com/en-us/commandline/wsl/about)... – kenba

答えて

0

qmakeの使用では、qmakeの起動時に起こっていることと、その後のmake/nmake呼び出しで何が起こっているのかを覚えておくことが重要です。

version.commands =の後に指定されたものは、makeが呼び出されたときに実行されます。

一方、touch()はqmakeを実行すると呼び出されるqma​​ke関数です。

今日のQtソースコードのdevブランチを見ると、qtbase/mkspecs/featuresディレクトリのすべてのQt内でtouch()が4回使用され、.commandsのコンストラクトでは使用されません。

関連する問題