2016-08-25 3 views
3

https://github.com/iocane/unboxコンパイルTupをビルドシステム私はで見つけることができる「VHS版」と呼ばれるJプログラミング言語のインタプリタでコンパイルしようとしています

それはTUPのビルドシステムとgithubの命令を使用していますがVisual Studioツールのプロンプトからtupコマンドを使用するように指定します。 Visual Studio 2015コミュニティをダウンロードしましたが、指示に記載されている正確なプロンプトが表示されないので、VS2015 x86 x64クロスツールコマンドプロンプトを使用しました。 tupをインストールしてパスに追加した後、私は "unbox"をクローンしたディレクトリに移動し、tupとタイプしました。

問題が開始場所しかし、これはTUPを入力した後、私は次のように取得するには、次のとおりです。

* 1) CC src/libj\a.c 
a.c 
*** tup errors *** 
tup error: File 'C:\Users\I\AppData\Local\Microsoft\VSCommon\14.0\SQM\VCToolsTelemetry.dat' was written to, but is not in .tup/db. You probably should specify it as an output 
*** Command ID=663 ran successfully, but tup failed to save the dependencies. 
* 2) CC src/libj\af.c 
af.c 
*** tup errors *** 
tup error: File 'C:\Users\I\AppData\Local\Microsoft\VSCommon\14.0\SQM\VCToolsTelemetry.dat' was written to, but is not in .tup/db. You probably should specify it as an output 
*** Command ID=667 ran successfully, but tup failed to save the dependencies. 
* 3) CC src/libj\ai.c 
ai.c 
*** tup errors *** 
tup error: File 'C:\Users\I\AppData\Local\Microsoft\VSCommon\14.0\SQM\VCToolsTelemetry.dat' was written to, but is not in .tup/db. You probably should specify it as an output 
*** Command ID=669 ran successfully, but tup failed to save the dependencies. 
* 4) CC src/libj\ab.c 
ab.c 
*** tup errors *** 
tup error: File 'C:\Users\I\AppData\Local\Microsoft\VSCommon\14.0\SQM\VCToolsTelemetry.dat' was written to, but is not in .tup/db. You probably should specify it as an output 
*** Command ID=665 ran successfully, but tup failed to save the dependencies. 
[          ETA~=30s Remaining=130 Active=0          ] 2% 
*** tup: 4 jobs failed. 

あなたは、TUPのデータベースに指定されていなかったVCToolsTelemetry.datファイルを見ることができるように。

Visual StudioがVSToolsTelemetry.datをまったく使用しないようにする方法を知っている人はいますか?または、Unboxデベロッパーに連絡して、そのファイルをdbに追加させる必要がありますか?

ご迷惑をおかけして申し訳ありません。

+0

スタックオーバーフローがそのツールのサポートフォーラムである場合は、ここでかなり正しいです。そうでない場合 - そうではありません。それで、あなたはどう思いますか? – Olaf

答えて

1

解決策は、Christian Fillionによってthis commentに与えられました。


This Microsoft pageそのファイルがあるため、どのようにそれへの書き込みからのVisual Studioツールを防ぐために何を説明します

デフォルトでは、Visual Studioのインストールには、顧客からのフィードバックを可能にします。次のレジストリキーの値を文字列 "0"に変更することにより、Visual Studioで個々のコンピュータのフィードバックを無効にするように構成できます。

キーはOptInです。そのページによれば、HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\VisualStudio\SQMにありますが、それはHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VSCommon\14.0\SQMでもかまいません(これは私のWindows 10のラップトップの場合でした)。

enter image description here

(マイクロソフトのページには、それは文字列でなければならないと言いますが、私の場合、それはDWORDだとそれが正常に動作します。)


または私はVHS版の開発者にお問い合わせください彼にそのファイルをdbに追加させてもらえますか?何が起こっている

はTupを、ファイルベースのビルドシステムは、コマンドのすべての出力が指定されている必要がありますということですが、このファイルではありません、それはそれが書かれていることを検出したときにTupをは文句を言います。 Tupの場合、ファイルの作成と書き込みには違いはありません。どちらの場合も、 '出力'です。したがって、Tupはいくつかのコマンドが同じファイルに書き込む状況を処理しません。これは、しばしばインクリメントに書き込まれるように設計されたキャッシュに問題を引き起こす。私が正しくリコールした場合、Tupには回避策が実装されており、そのパスに先行する期間のあるコンポーネントが含まれている出力ファイルは無視されます。 Linux環境では、名前が先頭のピリオドで始まるディレクトリは、Windowsの場合とは異なり、隠しファイルとみなされます。この機能はファイルシステム属性で実装されています。したがって、この回避策は、一般に、そのような命名規則に依存しないWindowsのネイティブツールでは失敗します。 Tup側のより柔軟な解決策は、Tupにシステムやユーザー単位で、またはTupfiles内から特定の出力を無視するように指示する方法です。

このファイルは、CL.EXE(および他のVisual Studioツールなど)のすべての呼び出しの出力になるため、出力としてリストアすることはできません。これはTupの設計ごとに意味がありません。このようなシナリオを自動化することは不可能であるため、同じコマンドによって読み書きされるファイルのためのスペースを確保する意図はありません。このファイルが書かれていても、私は徐々に書かれた出力をサポートするつもりはないと思います。

プロジェクトはいくつかのプラットフォームにコミットされているようであり、それらのビルド手順を提供しているので、問題に説明し、解決方法を指摘して指示に含めることは妥当と思われます。

関連する問題