問題タブ [ccache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
path - コンパイラへのフル パスを distcc に渡さないように ccache を取得する方法
(これは、ccache ホスト マシンでコマンド パスのみを展開しないようにするため、 ccache と絶対パスの質問とは異なります)
ccache と distcc を一緒に使用すると、ccache はコンパイラを絶対パスに展開し、distcc はリモート マシンの PATH を使用して使用するコンパイラを選択できません。
たとえば、私が呼び出すCCACHE_PREFIX=distcc ccache g++ foo.cc
と、ccacheはこれをローカルの前処理ステップとキャッシュ チェックに展開distcc /usr/bin/g++
し、次に distcc as を呼び出します。これは間違ったバージョンです (g++ は /usr/bin の前のリモートのパスに存在しますが、これはそれを与えませんパスを検索する機会がまったくありません)。
私はさまざまなマシンを distcc ホストとして使用しており、同じバージョンの gcc/g++ が異なる場所にインストールされています (はい、/usr/local のような場所にそれらをすべて配置すると、この問題は解決しますが、できません現時点ではそれを行います)。
g++
パスをローカル コンパイラの絶対パスに展開するのではなく、distccだけに渡すように ccache を取得する設定はありますか? まだ設定がない場合、ccache にパッチを適用することに完全に反対しているわけではありませんが、それは最後の手段です :)
build-process - Qmake scons ジェネレーター
Windows でのビルドには scons を使用したいと考えていますが、これは主にそのキャッシュ機能のためです (Linux では ccache を使用しており、コンパイルはかなり高速です)。ただし、すべてのプロジェクトは qmake .pro ファイルで定義されています。現在ビルドが機能する方法は、qmake を呼び出して Makefile を生成し、それを使用して jom でビルドすることです。高レベルで .pro ファイルを持つことは非常に実用的であるため、.pro ファイルを SConfigure ファイルに置き換えずに、それを維持したいと考えています。したがって、理想的には、qmake で Makefile を生成するのと同じ方法で SConfigure ファイルを生成し、その SConfigure ファイルに対して scons を実行します。それを行うことができる何か、おそらくqmakeのジェネレーターはありますか?または、qmake によって作成された Makefile を SConfigure ファイルに変換することは何とか可能ですか?
(依存関係の生成など、scons と qmake の機能が重複していることは承知しており、scons だけを使用する方が適切である可能性がありますが、qmake は Qt プロジェクトで非常にうまく機能し、Visual Studio ファイルを生成することもできます。ので、残しておきたいと思います。)
performance - ccacheの欠点
実験にccacheを使用していますが、これを使用する必要があるかどうかはよくわかりません。ccacheが間違った動作を引き起こす可能性がある状況を誰かが説明できますか?または、常にccacheを使用する必要がありますか?そのccacheを取得した人は、間違ったオブジェクトファイルを生成している、またはヘッダーファイルの変更は考慮されていませんか?
c - Makeでccacheを使用する方法は?
makefileを使用してコードをコンパイルするソースディレクトリがあります。このmakefile/configureファイルは、ccacheとの互換性のために作成されていません。そこで、ccacheを使用することを考えました。.bashrcでエイリアスをとして作成しましalias gcc='ccache gcc'
たが、Makefileはまだこのgccの定義を考慮していません。それで、ファイルに触れることなく、の代わりにMakefile/configure
かかるように私ができることはありますか?また、CC ='ccache gcc' ./configureは、CCを要求しないため、オプションではありません。ccache gcc
gcc
Makefileを作成する場合、$ {gcc)を提供できますが、Makefileを作成していないため、これはオプションではありません。ソースファイル内の何も変更する必要がないが、ccache
コンパイルを有効にする方法はありますか?
linux - Linux ビルド システム ツール
私たちのプロジェクトはかなり大きくなり、ビルドシステムはもはや拡張できません。Linux マシンでクロスプラットフォーム開発を行っています。ビルドするプラットフォームが多すぎて、さらに多くのビルド オプションがあります。Makefile ベースのビルド環境をアップグレードする必要があると考えています。
これらは要件です(理想的な世界では):
- 高速(libtoolがないため)
- 並列ビルドができる
- クロスコンパイルフレンドリー
- Ccache の統合
- インクリメンタル ビルドを行い、特定の条件が満たされた場合に短絡する可能性があります (a、b、c オプションが変更されていない場合は短絡、変更されている場合は再構築)
- 簡単にスクリプト化可能 (Python との統合が理想的)
- ユーザーフレンドリーな構文
- 分散システム。モジュールは互いに個別に開発可能
- サードパーティのライブラリ (autotools、cmake などを使用) を構築できます。
- モジュール間の依存関係を追跡できます (ただし、モジュールを代替の外部モジュールに置き換えることができるほど柔軟です)。
- 組み込みの単体テストのサポート
- 大きなバイナリはバージョン管理とは別に保存でき、必要に応じてダウンロードできます
- オープンソース ライセンスを追跡できる
- git 統合
これらの要件 (少なくとも一部) を満たすツール (またはツールのグループ) をご存知ですか? 現在、gyp+ninja に傾倒しています。しかし、構文はあまり使いやすくなく、ドキュメントもありません。なので売りにくいです。
ccache - ccache を使用するケースはいつですか?
私が知る限り、ccache は、以前のコンパイルをキャッチし、同じコンパイルが再び実行されていることを検出することにより、コンパイルを高速化します。ただし、makefile は同じことを行います。では、なぜ ccache が必要なのでしょうか? いつ使用するのですか?ありがとう!
c++ - Windows で Qt Creator を使用して ccache を設定する
Windows の Qt Creator で ccache を設定しようとしています。
残念ながら良い指導は見つかりませんでした。それを機能させる方法は?
Cygwin で ccache をインストールしました。
編集:
追加してみました
qmakeビルドステップの追加パラメーターとして。
しかし、コンパイル出力にはまだ「g++ -c -g -Wall ...」があり、「ccache g++ ...」である必要があると思います
c++ - ccache が gcc でより頻繁に使用されないのはなぜですか?
私は疑問に思っていました...
ccache に制限はありますか?
後のコンパイル時間の差が非常に大きい場合、Linux 開発者が ccache をより頻繁に使用しないのはなぜですか?
shared - ccache BASEDIR (共有) 構成
環境はUbuntu12
同じビルドの 2 つの異なるバージョンがあります。
1 つは /media/CM10/custom の下にあり、もう 1 つは /home/malachi/CM10/android/system の下にあります。
メインビルドプロセスによって呼び出される特殊な build-setup.sh があり、それぞれに次のものがあります。
CCACHE_BASEDIR=/メディア/CM10/カスタム
と
CCACHE_BASEDIR=/home/malachi/CM10/アンドロイド/システム
しかし、それは間違いなく2人の間で共有されていません. 私が実行したときのキャッシュサイズは約3.9GBで、繰り返してもそこにとどまります。もう一方を実行すると、7GB を超えます。
ccache ログを確認すると、ベース ディレクトリを取得して相対パスを書き換えているようです。これら2つの間でccacheを適切に共有する方法の手がかりはありますか? ありがとうございました
linux - Linuxでccacheを有効にする方法
ccache
GNU/Linuxでの有効化に関するドキュメントはほとんどありません。これがlaunchpad.netからの応答です:
現時点では、ccacheを有効にする最善の方法は、パスの前に「/ usr / lib/ccache」を追加することだと思います。デフォルトですべてのユーザーに対して有効にする場合は、/ etc/environmentのPATH変数を変更します。
誰かが有効にすることについてもっと情報を教えてもらえますかccache
?