CMake Error at CMakeLists.txt:40 (find_package): By not providing "FindPangolin.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Pangolin", but CMake did not find one. Could not find a package configuration file provided by "Pangolin" with any of the following names: PangolinConfig.cmake pangolin-config.cmake Add the installation prefix of "Pangolin" to CMAKE_PREFIX_PATH or set "Pangolin_DIR" to a directory containing one of the above files. If "Pangolin" provides a separate development package or SDK, be sure it has been installed. -- Configuring incomplete, errors occurred! See also "/home/wyy/catkin_ws/src/ORB_SLAM2/build/CMakeFiles/CMakeOutput.log". make: *** 没有指明目标并且找不到 makefile。 停止。
时间: 2025-04-05 12:05:30 浏览: 47
<think>嗯,用户遇到了CMake找不到Pangolin库的问题。首先,我需要回忆一下CMake查找包的基本机制。通常,CMake使用find_package命令来定位依赖库,可以通过设置Pangolin_DIR或者调整CMAKE_PREFIX_PATH来指定库的路径。用户可能没有正确安装Pangolin,或者安装路径不在默认搜索范围内。
根据引用[2]提到的,有些情况需要指定CMake版本,但这里的问题更可能是路径问题。用户需要确保Pangolin被正确安装,并且CMake能够找到它的配置文件,比如PangolinConfig.cmake。可能需要手动设置这些路径,或者在CMakeLists.txt中添加查找路径。
另外,引用[3]中提到了设置库和可执行文件的输出目录,可能用户的项目结构有特殊要求,需要调整路径。如果Pangolin是源码编译安装的,可能需要确保安装到了系统目录,或者通过-DCMAKE_INSTALL_PREFIX指定了安装路径。
用户可能需要检查Pangolin的安装是否正确,比如是否运行了make install,或者是否设置了环境变量。还有可能Pangolin的版本与ORB_SLAM2不兼容,需要确认版本匹配。此外,引用[4]中的问题是因为缺少makefile,可能CMake生成失败,所以需要确保所有依赖项正确配置后重新生成。</think>### 解决CMake无法找到Pangolin库的步骤
#### 1. **确认Pangolin库安装正确**
- **通过源码编译安装**:
```bash
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local # 指定安装路径
make -j4
sudo make install # 确保安装到系统路径
```
若未指定安装路径,默认可能安装在`/usr/local`或`/usr`下[^2]。
- **验证安装**:
检查是否存在`PangolinConfig.cmake`或`pangolin-config.cmake`文件,通常在`/usr/local/lib/cmake/Pangolin`或`/usr/lib/cmake/Pangolin`中。
#### 2. **配置CMake查找路径**
- **方法1:设置环境变量**
在终端中临时添加Pangolin路径:
```bash
export Pangolin_DIR=/path/to/Pangolin/install/lib/cmake/Pangolin
```
或永久添加到`~/.bashrc`中。
- **方法2:修改CMakeLists.txt**
在ORB_SLAM2的`CMakeLists.txt`中增加路径设置:
```cmake
list(APPEND CMAKE_PREFIX_PATH "/path/to/Pangolin/install") # 添加自定义安装路径
find_package(Pangolin REQUIRED)
```
若需兼容不同版本,可添加版本号约束:
```cmake
find_package(Pangolin 0.8 REQUIRED)
```
#### 3. **检查依赖关系**
- **依赖库关联性**:
Pangolin依赖OpenGL、GLEW等,需确保系统已安装:
```bash
sudo apt-get install libgl1-mesa-dev libglew-dev
```
#### 4. **重新生成构建文件**
```bash
cd ORB_SLAM2
rm -rf build # 清除旧配置
mkdir build && cd build
cmake .. -DPangolin_DIR=/path/to/Pangolin/cmake # 显式指定路径
make -j4
```
#### 5. **常见错误处理**
- **错误:`Could NOT find Pangolin`**
检查是否遗漏`sudo make install`步骤,或尝试手动指定路径。
- **错误:`Pangolin版本过低`**
升级Pangolin至官方推荐版本,如`0.8`。
---
阅读全文
相关推荐



















