Clion / Cmake和Eigen出错

时间:2017-05-14 02:09:31

标签: cmake eigen

我试图让Eigen运行起来但我遇到了障碍。我打开Clion并在CMakeLists.txt选项卡中输入以下代码。请注意我已经安装了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})

我收到以下错误。

/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.

我以前从未这样做过,我真的很茫然,对于该做什么一无所知?

更新: 代码更改会清除错误但会生成一个新错误。

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})

3 个答案:

答案 0 :(得分:2)

除了@John Zwinck的答案解决了问题之外,你的include_directories声明中有错误。

应该是

include_directories(${EIGEN3_INCLUDE_DIR})

而不是

include_directories(EIGEN_INCLUDE_DIR)

答案 1 :(得分:1)

如果查看CMake模块的源代码:https://github.com/RLovelett/eigen/blob/master/cmake/FindEigen3.cmake

您可以看到它接受EIGEN3_ROOTEIGEN3_ROOT_DIR中的“提示”。将其中一个设置为您的Eigen安装基础,然后重试:

EIGEN3_ROOT=blah/blah cmake ...

答案 2 :(得分:0)

  • 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})
    
  • 您在其中放置Eigen源代码的目录必须位于包含路径中

  • EIGEN_DIR设置为Eigen文件夹在系统中的路径
  • 这对我有用,不要忘记你在使用Eigen的文件中的#include <Eigen> ...希望这个答案可以帮到你:D