Could not find a configuration file for package "Eigen3" that is compatible with requested version

1.Download the ceres source code

git clone https://ceres-solver.googlesource.com/ceres-solver

2.Dependencies

# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev
# BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse and CXSparse (optional)
# - If you want to build Ceres as a *static* library (the default)
#   you can use the SuiteSparse package in the main Ubuntu package
#   repository:
sudo apt-get install libsuitesparse-dev
# - However, if you want to build Ceres as a *shared* library, you must
#   add the following PPA:
sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687
sudo apt-get update
sudo apt-get install libsuitesparse-dev

3.Compile and Installation

Enter the ceres download path.

tar zxf ceres-solver-XXX

mkdir build
cd build/
cmake ..
make
sudo make install

4. Issues

CMake Error at CMakeLists.txt:243 (find_package):
  Could not find a configuration file for package "Eigen3" that is compatible
  with requested version "3.3".

  The following configuration files were considered but not accepted:

    /usr/lib/cmake/eigen3/Eigen3Config.cmake, version: unknown

Solution: Reinstall the eigen3 which version is later than 3.3.3, such as 3.3.4, then re-install the ceres.

git clone https://github.com/eigenteam/eigen-git-mirror

cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install

#after installation, the header file will be in /usr/local/include/eigen3/

 

### 回答1: 这个错误提示是因为找不到名为 "eigen3config.cmake" 或 "eigen3-config.cmake" 的包配置文件。可能是因为您没有安装 Eigen3 库或者安装的位置不正确。您需要检查 Eigen3 库的安装情况,并确保其安装位置正确。如果您已经安装了 Eigen3 库,但仍然出现此错误,请检查您的环境变量和路径设置是否正确。 ### 回答2: 出现这样的问题,一般是由于编译程序所需要的"eigen3"库没有被正确安装或导入路径不正确。因此,我们需要检查以下几个方面: 1.检查是否正确安装了"eigen3"库: 我们可以通过以下命令检查该库是否被正确安装: ``` sudo apt-get install libeigen3-dev ``` 如果未安装该库,请使用上述命令进行安装。 2.检查导入路径是否正确: 如果"eigen3"库已正确安装,但仍然报错找不到相应配置文件,那就要检查该库所在的 导入路径是否已正确添加。在CMakeLists文件中添加以下代码,将该库所在的路径添加到CMake搜索路径中: ``` find_package(Eigen3 REQUIRED) include_directories(${EIGEN3_INCLUDE_DIR}) ``` 其中,${EIGEN3_INCLUDE_DIR}是该库所在的导入路径。 3.重新生成编译文件: 完成以上步骤后,重新生成编译文件: ``` mkdir build cd build cmake .. make ``` 如果重新生成编译文件后仍然无法解决问题,可以尝试重新编译并安装"eigen3"库,或者使用其他版本的该库。 ### 回答3: 这个错误信息意味着你的CMake项目在构建过程中需要用到“eigen3”包的配置文件,但系统无法找到对应的文件路径。 "eigen3"是一个C++线性代数库,用于矩阵和向量计算。如果你的项目需要使用这个库,就需要在CMakeLists.txt文件中添加对它的依赖。常用的做法是通过find_package命令来寻找这个库的配置文件。 当你使用find_package(eigen3)命令寻找这个库的时候,CMake会自动到系统搜索路径下查找"On Unix-like systems" 的包配置文件。然而,如果你在系统中并没有安装这个库,或者它的配置文件没有放在CMake可以搜索到的路径下,就会出现上述错误信息。 解决这个问题有很多种方法,下面列出几个可能的解决方案: 1. 如果你没有安装“eigen3”库,可以尝试用包管理器(比如apt-get或brew)进行安装,然后再重新构建你的项目。 2. 如果你已经安装了这个库但仍然遇到问题,可以使用“-DCMAKE_PREFIX_PATH=<path/to/eigen3>”参数来指定库的安装路径,这样CMake就能够找到它。 3. 如果你已经确定该库的配置文件存在,但CMake仍然无法找到它,你可以手动将它的路径添加到CMAKE_MODULE_PATH变量中,这样CMake就能够找到包配置文件。 总之,出现这个错误信息通常是由于依赖库没有正确安装或配置不正确导致的。解决方法是从库的安装和配置层面入手,确保CMake能够正确找到依赖包的配置文件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值