web-dev-qa-db-ja.com

CMakeがEigen3を見つけることができません

FindEigen3.cmakeをソースディレクトリにコピーしました。

次に追加しました:

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR})

私のCMakeLists.txtに、この.cmakeファイルを使用するようにCMakeに指示します。

次に、CMakeLists.txtで次のことを行います。

FIND_PACKAGE(Eigen3)

環境変数EIGEN3_INCLUDE_DIRを/ home/doriad/src/eigenに設定しています

CMakeを実行すると、次のようになります。

-- Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) (Required is at least version "2.91.0")

これはMercurialからの新しいクローンであるため、バージョンは少なくとも3である必要があります。

助言がありますか?

モジュールパスを誤って設定すると、いくつかの手がかりが得られます。

Adjust CMAKE_MODULE_PATH to find FindEigen3.cmake or set Eigen3_DIR to the
directory containing a CMake configuration file for Eigen3. The file will
have one of the following names:

Eigen3Config.cmake
eigen3-config.cmake

ただし、Eigen3のソースディレクトリまたはビルドディレクトリのいずれにもこれらのファイルは見つかりませんでした。 Eigen3_DIR =/home/doriad/src/eigenを設定しようとしましたが、それも機能しませんでした。

考え?

ありがとう、

ダビデ

21
David Doria

Eigen3パッケージをインストールしたとき(たとえば、-DCMAKE_INSTALL_PREFIX =/home/doriad/installを使用)、eigen3を使用しているcmakeパッケージのCMAKE_INSTALL_PREFIX変数を同じディレクトリに設定したときに機能しました。

Findscriptsの問題のため、私は実際に代わりに pkg-config を使い始めました。そのためには、eigen3 cmakeでpkg-configサポートを有効にし、独自のcmakeスクリプトでpkg-configマクロを使用する必要があります。利点は、環境変数を設定する必要がなくなることです。

find_package( PkgConfig )
pkg_check_modules( EIGEN3 REQUIRED eigen3 )
include_directories( ${EIGEN3_INCLUDE_DIRS} )
8
Jakob