Clion / Cmake和Eigen出错

问题描述 投票:1回答:3

我试图让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})
cmake eigen
3个回答
1
投票

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

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

EIGEN3_ROOT=blah/blah cmake ...

1
投票

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

它应该是

include_directories(${EIGEN3_INCLUDE_DIR})

代替

include_directories(EIGEN_INCLUDE_DIR)

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
© www.soinside.com 2019 - 2024. All rights reserved.