私は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を含むこのフォルダはどこにありますか?
私は、find_packageとconfigのポイントは、エンドユーザーがライブラリ/モジュールの場所を指定する必要性を排除することだと考えました。いずれにしてもエンドユーザーが設定ファイルの場所を指定する必要がある場合、生成されたmakefileまたはvcprojファイルを操作してライブラリを指すようにしないでください。 cmakeはこれを抽象化していないのですか?私は自分のプロジェクトで 'cmake。'を実行すると、ライブラリがインストールされていることを確認し、既に列挙されている依存関係を持つvcproj/makefilesを生成するようにしたいだけです。これを行う方法は何ですか? – FatalCatharsis
@FatalCatharsisです。しかし 'find_package()'は魔法ではありません。パッケージを見つけるためによく知られたディレクトリのセットを探し、 'CMAKE_PREFIX_PATH'変数を設定することでそれを拡張することができます。さらに、これらのよく知られているディレクトリのデフォルトセットはOS固有ですが、一般的にはOS /ベンダのディレクトリツリーの一部です。これは問題を提起するかもしれない。あなたがソースからビルドしたものをインストールしようとすると、ファイル/ディレクトリのアクセス権が失われます。あなたは 'CMAKE_INSTALL_PREFIX'を使って* that *を回避することができます。 – user268396