2016-09-02 7 views
1

gflagsなどのプロジェクトでcmakeを実行すると、システムレベルで情報が書き込まれます。具体的には、Linuxシステムでは、$HOME/.cmake/Caffe$HOME/.cmake/gflags

のようないくつかのディレクトリを生成します。これは私がコンパイルするすべてのプロジェクトで使用されることになります。結果として、$HOME/.cmakeで参照されているプログラムは、私が望んでいなくても(部分的に)見つかりました(私が関心している限り、外部プログラムで制御する外部変数を定義していますcmakeは特定のコンパイルで考慮することができます)。 現在の解決策は、必要に応じて(つまり新しいプログラムをコンパイルする前に)ディレクトリ$HOME/.cmakeを削除することです。私はにrm -rf $HOME/.cmakeを追加することを検討しますが、これは完全に満足できるものではありません(洗練されたものでもありません)。誰よりも良い解決策を提案できますか?

NB:質問の「システムキャッシュ」という表現が間違っている可能性があります。私はより良い言葉を得ることに感謝します。あなたは「システムを知っていたら


(...私は正しい表現を知っていたならば、実際に、私はすでにウェブ上で解決策を見つけたかもしれない)、この上の任意の意見をいただきありがとうござい編集キャッシュ "は実際には User Package Registryです。答えは簡単です。以下を参照してください...

+0

:その文書のポイント6を参照してください?それはまったく壊れているか、誤用されているようです。私はこのようなディレクトリへのCMakeの書き込みに遭遇したことはありません。 –

+0

バージョン3.5.1(質問編集済み)です。私のシステムはKubuntu 16.04ですが、私はubuntu 14.04とcmake 2.8.12.2で同様の動作をしました。 – xiawi

+0

私の同僚は、Caffeプログラムの 'export(PACKAGE caffe) 'コマンドの結果であると私に言った。これは「ユーザーパッケージレジストリ」です。 https://cmake.org/Wiki/CMake/Tutorials/Package_Registry – xiawi

答えて

0

$HOME/.cmakeディレクトリは、ユーザパッケージレジストリです。 find_package()がこのディレクトリで検索されないようにするには、オプションNO_CMAKE_PACKAGE_REGISTRYを使用します。 `は$ HOME/.cmake`に書き込んで具体的にどのようにCMakeのバージョン

https://cmake.org/cmake/help/v3.0/command/find_package.html

+0

'find_package()'は「設定モード」にあるので、 ' Config.cmake'ファイルのみを探します(' Find .cmake'ファイル) – xiawi

関連する問題