21

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 を設定しようとしましたが、それもうまくいきませんでした。

考え?

ありがとう、

デビッド

4

1 に答える 1

8

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} )
于 2011-06-12T18:25:16.180 に答える