Clion / Cmake和Eigen出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clion / 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})
答案

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

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

EIGEN3_ROOT=blah/blah cmake ...
另一答案

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

它应该是

include_directories(${EIGEN3_INCLUDE_DIR})

代替

include_directories(EIGEN_INCLUDE_DIR)
另一答案
  • 在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

以上是关于Clion / Cmake和Eigen出错的主要内容,如果未能解决你的问题,请参考以下文章

VSCode 找不到包,但 CLion 可以(CMake)

如何在win10系统配置clion

为 CLion 使用本地 makefile 而不是 CMake

Mac上使用clion基于cmake 开发gtk

CLion_CMake学习笔记

CLion_CMake学习笔记