2017-05-14 1 views
1

J'essaie de mettre Eigen en marche mais je cours dans un barrage routier. J'ai ouvert Clion et dans l'onglet CMakeLists.txt j'ai entré le code suivant. S'il vous plaît noter que j'ai installé Eigen avec home-brasser.Erreur avec Clion/Cmake et Eigen

project(untitled) 

cmake_minimum_required(VERSION 3.7) 

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) 

find_package(Eigen3 REQUIRED) 

include_directories(EIGEN3_INCLUDE_DIR) 

set(SRCS main.cpp) 

add_executable(untitled ${SRCS}) 

Je reçois l'erreur suivante.

/Applications/CLion.app/Contents/bin/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /Users/johnmcconnell/CLionProjects/untitled 
CMake Error at CMakeLists.txt:9 (find_package): 
    Found package configuration file: 

    /usr/local/share/eigen3/cmake/Eigen3Config.cmake 

    but it set Eigen3_FOUND to FALSE so package "Eigen3" is considered to be 
    NOT FOUND. 

Je n'ai jamais fait cela avant et je suis vraiment à court d'idées sur quoi faire?

MISE À JOUR: La modification du code efface l'erreur mais en génère une nouvelle.

fatal error: 'Eigen/Dense' file not found 

project(untitled) 

cmake_minimum_required(VERSION 3.7) 

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) 

include_directories(EIGEN_INCLUDE_DIR) 

set(SRCS main.cpp) 

add_executable(untitled ${SRCS}) 
+0

Définissez 'export CMAKE_PREFIX_PATH =/chemin/vers/vous/Eigen3/dir' dans CLion. – Gluttton

Répondre

1

Si vous regardez le code source du module CMake: https://github.com/RLovelett/eigen/blob/master/cmake/FindEigen3.cmake

Vous pouvez voir qu'il accepte "conseils" dans les deux EIGEN3_ROOT ou EIGEN3_ROOT_DIR. Définissez un de ceux à la base de votre installation Eigen et essayez à nouveau:

EIGEN3_ROOT=blah/blah cmake ... 
+0

Donc je l'ai eu pour effacer l'erreur en la changeant mais maintenant je reçois une erreur quand je cours mon code C++. "erreur fatale: fichier" Eigen/Dense "introuvable." J'ai posté le changement de code ci-dessus – Jake3991

+0

Recherchez un fichier appelé Dense sur votre ordinateur. L'avez vous? Ensuite, voir http://stackoverflow.com/questions/23284473/fatal-error-eigen-dense-no-such-file-or-directory –

+0

Non, je n'ai pas de fichier nommé dense. Ai-je besoin de télécharger autre chose? – Jake3991

1

En plus du problème résolu par la réponse de @John Zwinck, vous avez une erreur dans votre déclaration include_directories.

Il devrait être

include_directories(${EIGEN3_INCLUDE_DIR}) 

au lieu de

include_directories(EIGEN_INCLUDE_DIR) 
0
  • Inclure les éléments suivants dans CMakeLists.txt

    set(EIGEN_DIR "C:\\Eigendir\\Eigen") 
    include_directories(${EIGEN_DIR}) 
    add_executable(project_name main.cpp) 
    target_link_libraries(project_name ${EIGEN_DIR}) 
    
  • Le répertoire dans lequel vous avez placé le code source de Eigen doit être dans le chemin d'inclusion

  • EIGEN_DIR est réglé sur le chemin où le dossier Eigen est dans votre système
  • Cela a fonctionné pour moi et ne pas oublier le #include <Eigen> dans les fichiers où jamais vous utilisez Eigen ... Espérons que cette réponse vous aide: D