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_ROOT
或EIGEN3_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出错的主要内容,如果未能解决你的问题,请参考以下文章