2016-10-16 27 views
0

私はcmakeのfind_package関数を使ってglfw3のインストールを見つけようとしていますが、私は指示を理解しています。私はglfw3をダウンロードし、ビルドの指示に従った。cmake find_packageはビルドとインストール後にglfwを見つけることができません

は、SRCをダウンロードしたルートに行き、cmake ..

それから私は、Visual Studioのメインソリューションglfw.slnを開くを実行しました。私はソリューションを構築し、すべてがうまく構築されたように見えました。私はlibが作成された場所とすべてを見ることができます。

By not providing "Findglfw.cmake" in CMAKE_MODULE_PATH this project has 
asked CMake to find a package configuration file provided by "glfw", but 
CMake did not find one. 

Could not find a package configuration file provided by "glfw" with any of 
the following names: 

glfwConfig.cmake 
glfw-config.cmake 

Add the installation prefix of "glfw" to CMAKE_PREFIX_PATH or set 
"glfw_DIR" to a directory containing one of the above files. If "glfw" 
provides a separate development package or SDK, be sure it has been 
installed. 

私はかつて私が走った、それは、それは希望glfw3のような他のプロジェクトに含まれていた別のcmakeのライブラリをインストールした印象の下にあった:私はfind_package(glfw3 REQUIRED)を使用するときに自分のcmakeのプロジェクトで、私はこのエラーを受け取りますcmakeへの呼び出しがあればどこでもglfw3config.cmakeをインストールしてください。それが起こっていない理由はありますか? * config.cmakeを含むこのフォルダはどこにありますか?

答えて

0

これはおそらくgflw3をビルドしたが、Windows/Visual Studioに相当するmake installを実行していないため、アーチファクトがcmakeが探している場所に展開されていない可能性があります。

あなたはglfw3ためcmakeを呼び出すときに-DCMAKE_INSTALL_PREFIX=で、適切なディレクトリをパスして、あなた自身のプロジェクトのために-DCMAKE_PREFIX_PATH=でそれを参照する必要があります。基本的には:

  1. はそれのためにcmakeを実行するとき-DCMAKE_INSTALL_PREFIX=C:/Users/me/gflw3とその出力成果物をインストールするには、あなたのgflw3プロジェクトを構成します。
  2. ビルドgflw3 & deploy/install
  3. cmakeを実行すると、C:/Users/me/gflw3の内容を-DCMAKE_PREFIX_PATH=C:/Users/me/gflw3にするように教えてください。
+0

私は、find_packageとconfigのポイントは、エンドユーザーがライブラリ/モジュールの場所を指定する必要性を排除することだと考えました。いずれにしてもエンドユーザーが設定ファイルの場所を指定する必要がある場合、生成されたmakefileまたはvcprojファイルを操作してライブラリを指すようにしないでください。 cmakeはこれを抽象化していないのですか?私は自分のプロジェクトで 'cmake。'を実行すると、ライブラリがインストールされていることを確認し、既に列挙されている依存関係を持つvcproj/makefilesを生成するようにしたいだけです。これを行う方法は何ですか? – FatalCatharsis

+0

@FatalCatharsisです。しかし 'find_package()'は魔法ではありません。パッケージを見つけるためによく知られたディレクトリのセットを探し、 'CMAKE_PREFIX_PATH'変数を設定することでそれを拡張することができます。さらに、これらのよく知られているディレクトリのデフォルトセットはOS固有ですが、一般的にはOS /ベンダのディレクトリツリーの一部です。これは問題を提起するかもしれない。あなたがソースからビルドしたものをインストールしようとすると、ファイル/ディレクトリのアクセス権が失われます。あなたは 'CMAKE_INSTALL_PREFIX'を使って* that *を回避することができます。 – user268396

関連する問題