【发布时间】:2021-04-28 23:25:21
【问题描述】:
我正在尝试将 Eigen 库包含到我的 CMakelist.txt 中。我已按照 Eigen Docs 上的 CMake 说明进行操作,但我使用的是 Jetbrain 的 Clion 而不是直接使用 CMake。所以我不知道如何使用提供的 Cmake 命令。我进行了研究,但我对 CMake 的理解不是很好,无法编写 Cmakelists,所以我还没有得到任何工作。
这是我一直用来测试库的 serup 的:
cmake_minimum_required(VERSION 3.17)
project(Eigen_Test)
set(CMAKE_CXX_STANDARD 20)
find_package (Eigen3 3.3 REQUIRED NO_MODULE)
add_executable (example example.cpp)
target_link_libraries (example eigen)
add_executable(Eigen_Test main.cpp)
这是我收到的错误:
CMake Error at CMakeLists.txt:5 (find_package):
Could not find a package configuration file provided by "Eigen3" (requested
version 3.3) with any of the following names:
Eigen3Config.cmake
eigen3-config.cmake
Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
"Eigen3_DIR" to a directory containing one of the above files. If "Eigen3"
provides a separate development package or SDK, be sure it has been installed.
我研究了很多方法来包含该库,但大多数方法都使用我不熟悉的命令行。我也没有Eigen3Config.cmake 唯一的文件Eigen3Config.cmake.in。我假设有一些我必须不知道的安装技巧。如果有人有办法严格使用 CMakelist.txt 包含 clion,我将不胜感激。
【问题讨论】:
-
那么,您究竟尝试了什么?您是否尝试过按照that answer 中的建议安装 Eigen3?这样
Eigen3Config.cmake文件就会出现。 (文件Eigen3Config.cmake.in表明您在源中有 Eigen3)。您是否尝试过按照that answer 中的建议使用include_directories命令而不是find_package? -
我遇到了同样的问题,这里的答案是:stackoverflow.com/questions/59794643/… 是唯一对我有用的。删除 find_package、add_executable 和 target_link_libraries 命令并将它们替换为 set(EIGEN_DIR "path-to-extracted-eigen-zip-file") 和 include_directories(${EIGEN_DIR})。