2011-05-07 11 views
21

He copiado FindEigen3.cmake en mi directorio fuente.CMake No se puede encontrar Eigen3

Luego añade:

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

a mi CMakeLists.txt para contar CMake utilizar este archivo .cmake.

Luego, en mi CMakeLists.txt hago:

FIND_PACKAGE(Eigen3) 

que tienen la variable de EIGEN3_INCLUDE_DIR environent establece en/home/doriad/src/Eigen

Cuando corro CMake, me sale:

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

Este es un clon fresco de Mercurial, por lo que la versión debe ser de al menos 3.

Alguna sugerencia?

Si fijo la ruta del módulo INCORRECTAMENTE, consigo algunas pistas:

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 

Sin embargo, no he encontrado ninguno de esos archivos, ya sea en el directorio de fuentes o construye el dir de Eigen3. Intenté establecer Eigen3_DIR =/home/doriad/src/eigen, pero eso tampoco funcionó.

¿Pensamientos?

Gracias,

David

+1

¿podría encontrar la solución? Todavía no puedo resolver este problema y es extraño, porque compilo con cualquier otra biblioteca como opencv, matlab, boost –

+2

¿De dónde sacaste el archivo FindEigen3.cmake? –

Respuesta

7

Funcionó para mí, cuando he instalado el paquete eigen3 (por ejemplo, utilizando -DCMAKE_INSTALL_PREFIX =/home/doriad/instalar), y también establece la variable CMAKE_INSTALL_PREFIX del paquete cmake eso es usando eigen3 al mismo directorio.

Debido a los problemas con loscripts de búsqueda, en realidad comencé a usar pkg-config. Para eso, necesita activar el soporte de pkg-config en eigen3 cmake, y usar la macro pkg-config en su propio script cmake. La ventaja es que ya no necesita configurar variables de entorno.

find_package(PkgConfig) 
pkg_check_modules(EIGEN3 REQUIRED eigen3) 
include_directories(${EIGEN3_INCLUDE_DIRS}) 
+0

¿Podría dar un ejemplo de cómo usar pkg-config en el archivo cmake para ese propósito? – Grzenio

Cuestiones relacionadas