我正在使用具有光谱(https://spectralib.org/)的Eigen3,这是在Eigen之上构建的库。 Spectra使用find_package查找本征,并提示错误:
Could not find a package configuration file provided by "Eigen3" with any
of the following names:
Eigen3Config.cmake
eigen3-config.cmake
浏览Eigen的目录时,我发现没有那些名称的文件,而是一个名为Eigen3Config.cmake.in的文件。我尝试复制文件并将其重命名为Eigen3Config.cmake,但这给了我一个不同的错误
find_package Error reading CMake code from "C:/Program Files
(x86)/Eigen3/cmake/Eigen3Config.cmake".
有点期望,但是它确实告诉我,它至少可以找到Eigen3Config.cmake.in所在的目录。我假设find_package应该使用Eigen3Config.cmake.in,或者Eigen3Config.cmake.in应该生成Eigen3Config.cmake,但是我对cmake还是很陌生,所以我不确定。我该如何解决?
如果您手动包含它,则无需构建/安装Eigen来使用它,如入门示例(https://eigen.tuxfamily.org/dox/GettingStarted.html#title0)中所做的那样
但是要被CMake找到,您将需要按照安装文件中的说明构建/安装它。 https://gitlab.com/libeigen/eigen/-/blob/master/INSTALL
通常,您的错误后会出现提示,提示您设置变量Eigen3_DIR
(或类似名称)以指向目标项目的构建/安装目录(此处为Eigen3)。它通常在您构建但未安装项目时出现。
所以:
Eigen3_DIR
设置为/path/to/Eigen/build .
(如果未安装本征或仍未找到本征)