在 Windows 中配置 cmake 项目时未找到 Eigen3_DIR

Fin*_*ley 5 c++ windows cmake eigen

我想编译一个开放项目,它需要 Eigen3,我遵循了它的指导方针,但卡在了这一步:

“将环境变量 Eigen3_DIR 设置为 {YOUR_EIGEN3_DIRECTORY}/eigen3/cmake。”

我已经安装了 CMake gui,它在配置后打印了以下错误

Make Error at src/CMakeLists.txt:15 (find_package):
  By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Eigen3", but
  CMake did not find one.

  Could not find a package configuration file provided by "Eigen3" 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.
Run Code Online (Sandbox Code Playgroud)

但是我已经从这里下载了 Eigen3 ,并设置Eigen3_DIR如下 在此处输入图片说明 那么我应该怎么做才能修复它?我只是 cmake 的初学者。

小智 8

我假设您使用的是 Windows。您需要安装 Visual Studio。您可以使用社区版本。您需要执行以下操作:

  1. 在 Eigen 目录中创建一个名为“build”的目录。
  2. 转到构建目录并执行“cmake ..”。这将创建 Visual Studio 项目。
  3. 使用 Visual Studio 加载 .sln。
  4. 构建解决方案。
  5. 确保名为 INSTALL 的项目也已构建。

这将在您的安装目录中创建 Eigen3Config.cmake 文件。在我的例子中,安装目录是“C:\Program Files(X86)\Eigen3。使用它作为 Eigen3_DIR 变量的值。默认情况下,Eigen 不附带 Eigen3Config.cmake 文件。您将看到 Eigen3Config.cmake.in文件。这用于构建 Eigen3Config.cmake 文件。

华泰

  • 必须“构建”一个仅包含头文件的库是相当不直观的,但这确实有效,所以谢谢。作为旁注,您应该能够使用“cmake -D CMAKE_INSTALL_PREFIX=your/install/dir ..”指定自定义安装目录 (2认同)