首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cmake find_package没有检测到windows中的路径

Cmake find_package没有检测到windows中的路径
EN

Stack Overflow用户
提问于 2021-07-26 20:45:13
回答 1查看 661关注 0票数 0

我正在尝试使用Cmake_gui和Visual构建ceres sovler

我将ceres-solver克隆到E:\Code\libs\ceres-solver中,并将所需的库Eigen3克隆到E:\Code\libs\eigen-3.3.9中。

当我在ceres-solver上运行cmake-gui时,我得到以下错误:

代码语言:javascript
复制
-- Detected available Ceres threading models: [CXX_THREADS, OPENMP, NO_THREADS]
-- Building with C++14
CMake Error at CMakeLists.txt:242 (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" (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.

我从以下几个方面修改了ceres CMakeLists.txt第241行:

代码语言:javascript
复制
find_package(Eigen3 3.3 REQUIRED)

代码语言:javascript
复制
find_package(Eigen3 3.3 REQUIRED PATH "E:/Code/libs/eigen-3.3.9")

但我还是发现了上面的错误

我也试过

代码语言:javascript
复制
list(APPEND CMAKE_PREFIX_PATH "E:/Code/libs/eigen-3.3.9")

set(Eigen3_DIR "E:/Code/libs/eigen-3.3.9")

我的问题是:

  1. 为find_package指定路径的正确方法是什么?我需要在windows中使用path环境变量还是修改CMakeLists.txt?

  1. 是否在
  2. 中正确指定了此路径?我需要链接到Eigen3的某些内部目录吗?和E:\Code\libs\eigen-3.3.9\cmake一样,使用正斜杠代替反斜杠,还是使用引号作为路径的引号?我尝试了所有这些都没有成功。--

  1. 是否递归地搜索指定目录中的包?或者我需要指向确切的目录吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-07-26 21:38:31

根据评论:

我必须先在Eigen3上运行Cmake,才能生成一个构建目录。但是,不一定需要在VS之后内置

然后在CMakeLists.txt中为ceres-solver设置第240行。

代码语言:javascript
复制
list(APPEND CMAKE_PREFIX_PATH "E:/Code/libs/eigen-3.3.9/build")

足以让Cmake-Gui找到Eigen3Config.cmake文件。

备注:

  1. Eigen3似乎没有任何必需的依赖项,但它在使用Cmake生成时确实会抛出许多警告,我忽略了这些
  2. glog库或任何其他库都不是必需的,但我必须检查"Enable“选项和ceres-solver.

的重新运行配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68536140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档