fatal error: boostdesc_bgm.i: 没有那个文件或目录,但是已经下载
时间: 2025-03-16 19:02:28 浏览: 91
### 解决方案
当遇到 `fatal error: boostdesc_bgm.i: No such file or directory` 的问题时,通常是因为某些依赖文件未正确下载或放置到指定路径。以下是详细的解决方案:
#### 1. 验证文件是否存在
确认已下载的 `.i` 文件是否存在于目标目录 `/home/pi/Downloads/opencv-3.4.0/build/CMakeDownloadLog.txt` 中提到的相关路径。如果文件确实存在但仍报错,则可能是路径配置不匹配。
#### 2. 下载缺失的文件
根据提供的信息,可以访问以下链接获取所需的 `.i` 文件:
```plaintext
https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/
```
具体文件名可以通过日志中的关键词搜索得出,例如 `boostdesc_bgm.i` 或其他类似的 `.i` 文件[^4]。
#### 3. 将文件放入正确位置
将下载好的 `.i` 文件解压并复制到 `opencv_contrib/modules/xfeatures2d/src/` 目录下。需要注意的是,仅需复制 `.i` 文件本身,而无需整个文件夹结构[^3]。
#### 4. 清理旧构建缓存
执行以下命令清理之前的构建缓存,以确保新文件被正确识别:
```bash
rm -rf /path/to/build/*
cmake -DOPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib/modules ..
make -j$(nproc)
```
#### 5. 检查 CMake 日志
如果仍存在问题,可查看 `CMakeError.log` 和 `CMakeOutput.log` 文件,进一步定位是否有其他依赖项丢失的情况[^1]。
---
### 示例代码:自动化脚本
为了简化操作流程,可以编写一个简单的 Bash 脚本来完成上述步骤:
```bash
#!/bin/bash
# 定义变量
DOWNLOAD_URL="https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/"
TARGET_DIR="/path/to/opencv_contrib/modules/xfeatures2d/src/"
# 创建目标目录(如果不存在)
mkdir -p $TARGET_DIR
# 下载必要的 .i 文件
for FILE in vgg_generated_120.i boostdesc_bgm.i; do
wget ${DOWNLOAD_URL}${FILE} -P $TARGET_DIR
done
echo "Files downloaded successfully!"
```
运行此脚本后,再次尝试重新编译项目。
---
### 注意事项
即使文件已经下载成功,但如果环境变量或路径设置有误,也可能导致相同错误。因此建议仔细核对以下几点:
- **路径一致性**:确保所有文件均位于预期的目标目录中。
- **权限问题**:验证当前用户是否有写入权限至目标目录。
- **版本兼容性**:使用的 OpenCV 版本应与对应的 `.i` 文件相匹配[^5]。
---
阅读全文
相关推荐


















