0

Cmake_gui と Visual Studio を使用して ceres sovler をビルドしようとしています

ceres-solver をE:\Code\libs\ceres-solver に複製し、必要なライブラリ Eigen3 をE:\Code\libs\eigen-3.3.9 に複製しました。

ceres-solver で cmake-gui を実行すると、次のエラーが発生します。

-- Detected available Ceres threading models: [CXX_THREADS, OPENMP, NO_THREADS]
-- Building with C++14
CMake Error at CMakeLists.txt:242 (find_package):
  By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Eigen3", but
  CMake did not find one.

  Could not find a package configuration file provided by "Eigen3" (requested
  version 3.3) with any of the following names:

    Eigen3Config.cmake
    eigen3-config.cmake

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

ceres CMakeLists.txt の 241 行目を次のように変更しました。

find_package(Eigen3 3.3 REQUIRED)

find_package(Eigen3 3.3 REQUIRED PATH "E:/Code/libs/eigen-3.3.9")

しかし、私はまだ上記のこのエラーを受け取ります

私も試しました

list(APPEND CMAKE_PREFIX_PATH "E:/Code/libs/eigen-3.3.9")

set(Eigen3_DIR "E:/Code/libs/eigen-3.3.9")

私の質問は次のとおりです。

  1. find_package のパスを指定する正しい方法は何ですか? Windows 内でパス環境変数を使用するか、CMakeLists.txt を変更する必要がありますか?

  2. Windows でこのパスを正しく指定していますか? Eigen3 の内部ディレクトリにリンクする必要がありますか? のようE:\Code\libs\eigen-3.3.9\cmakeに、バック スラッシュの代わりにスラッシュを使用するか、パスに引用符を使用しますか? これらすべてを試してみましたが、成功しませんでした。

  3. find_package は、指定されたディレクトリ内でパッケージを再帰的に検索しますか? または、正確なディレクトリを指定する必要がありますか?

ありがとう

4

1 に答える 1