CMake Error at 3rdparty/ippicv/downloader.cmake:77 (message): ICV: Failed to download ICV package:

在编译OpenCV3.1.0时,由于网络问题导致ffmpeg/avformat.h未找到,libgphoto2库未安装,并且 IPPICV 的下载出现错误。解决方法包括手动下载ippicv_linux_20151201.tgz文件,将其替换到指定目录,并重新运行cmake和make命令。提供的链接包含ippicv的下载资源。

编译OPENCV3.1.0报错

-- Looking for ffmpeg/avformat.h - not found
-- Checking for module 'libgphoto2'
--   No package 'libgphoto2' found
-- ICV: Downloading ippicv_linux_20151201.tgz...
CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file):
  file DOWNLOAD HASH mismatch

    for file: [/home/songdapeng/slambook2/3rdparty/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz]
      expected hash: [808b791a6eac9ed78d32a7666804320e]
        actual hash: [d41d8cd98f00b204e9800998ecf8427e]
             status: [7;"Couldn't connect to server"]

Call Stack (most recent call first):
  3rdparty/ippicv/downloader.cmake:110 (_icv_downloader)
  cmake/OpenCVFindIPP.cmake:237 (include)
  cmake/OpenCVFindLibsPerf.cmake:12 (include)
  CMakeLists.txt:537 (include)</

<think>好的,我现在需要帮用户解决配置错误的问题,可能涉及构建系统类型相关的错误。用户提到了几个错误信息,包括CMake Error、Invalid configuration、libs install machine not recognized、configure error、bin/bash config.sub failed,以及Makefile recipe target all failed。我需要逐步分析这些错误可能的原因,并提供对应的解决方案。 首先,用户引用的错误信息[^1]提到了CMake下载ippicv包时失败,状态码22,可能是网络问题或文件源不可用。这可能与构建过程中依赖下载有关,需要检查网络连接,或者手动下载缺失的文件。另外,用户提到的Invalid configuration和machine not recognized可能涉及系统架构识别问题,需要确认CMake或configure脚本是否支持当前系统类型,特别是如果用户使用的是较新或非标准系统时。 其次,引用[^2]提到了Makefile中的.IGNORE指令使用问题,这可能导致忽略错误但影响所有配方。用户遇到的Makefile recipe target all failed可能与之前的配置错误有关,因为如果配置阶段失败,后续的编译步骤也会失败。需要优先解决配置阶段的错误。 引用[^3]提到了SHELL环境变量的问题,如果shell路径未正确设置,可能会影响构建脚本的执行。需要检查环境变量是否正确,特别是SHELL和PATH的设置,确保bash的路径正确。 接下来,我需要整理解决步骤: 1. **网络问题检查**:针对CMake下载失败的错误,建议用户检查网络,尝试重新运行配置,或手动下载依赖包并放置到指定目录。 2. **系统架构识别**:如果系统类型无法识别,可能需要更新CMake或Autotools的配置文件,如config.sub和config.guess,这些文件通常位于项目的config目录中。用户可以从最新的GNU配置仓库获取这些文件,替换旧版本。 3. **环境变量和依赖项**:检查SHELL变量是否正确设置为/bin/bash,确保所有构建工具如gcc、make、automake等已正确安装,并且版本符合要求。 4. **手动配置和构建**:如果自动配置失败,尝试手动指定系统类型参数,如使用--build选项。同时,清理之前的构建文件,避免缓存导致的问题。 5. **错误日志分析**:建议用户查看详细的日志文件,如config.log,定位具体错误点,根据日志中的线索调整配置。 最后,需要将这些步骤以清晰的中文回答呈现,分点说明,帮助用户一步步排查和解决问题。同时,生成相关问题,帮助用户进一步理解可能涉及的领域。</think>### 配置错误问题分析与解决步骤 #### 1. **网络相关配置错误(CMake下载失败)** 错误示例: ``` CMake Error at 3rdparty/ippicv/downloader.cmake:77 (message): ICV: Failed to download ICV package: ippicv_linux_20151201.tgz. Status=22; HTTP response code said error ``` **原因**: - 网络连接不稳定或代理设置问题导致依赖包下载失败。 - 服务器端文件可能已被移除或路径变更[^1]。 **解决方案**: - **手动下载依赖包**: 根据错误提示的包名(如`ippicv_linux_20151201.tgz`),从官方仓库或镜像站手动下载,并放置到项目目录的`3rdparty/ippicv/downloads/`路径下。 - **检查代理设置**: 若使用代理,确保CMake配置中已正确设置代理环境变量(如`HTTP_PROXY`)。 --- #### 2. **系统架构识别错误(Invalid configuration)** 错误示例: ``` Invalid configuration libs install machine not recognized configure error: bin/bash config.sub failed ``` **原因**: - 构建系统的`config.sub`或`config.guess`文件过旧,无法识别当前机器的CPU架构或操作系统类型[^2]。 - 常见于跨平台构建或使用非标准系统(如定制Linux发行版)。 **解决方案**: 1. **更新GNU配置脚本**: - 从[GNU配置仓库](https://git.savannah.gnu.org/cgit/config.git/)下载最新的`config.sub`和`config.guess`。 - 替换项目中的旧文件(通常位于`/config`或`/build`子目录)。 2. **指定系统类型**: 在`configure`命令中手动添加系统类型参数,例如: ```bash ./configure --build=x86_64-linux-gnu ``` --- #### 3. **Makefile构建失败(Recipe target failed)** 错误示例: ``` make: *** [Makefile:123: all] Error 1 ``` **原因**: - 配置阶段未完成(如CMake或Autotools未生成正确的Makefile)。 - 依赖项缺失(如编译器、库文件未安装)。 **解决方案**: 1. **清理构建缓存**: ```bash make clean rm -rf CMakeCache.txt CMakeFiles/ ``` 2. **检查依赖项**: - 确保已安装`gcc`、`make`、`automake`等基础工具。 - 安装开发库(如`libtool`、`pkg-config`)。 3. **重新配置并构建**: ```bash ./configure && make ``` --- #### 4. **环境变量问题(Shell路径或权限)** 错误示例: ``` /bin/bash config.sub failed ``` **原因**: - `SHELL`环境变量未正确设置,或`bash`路径不可用[^3]。 - 脚本执行权限缺失。 **解决方案**: 1. **验证Shell路径**: ```bash echo $SHELL # 应输出/bin/bash或合法路径 which bash # 确认bash可执行文件位置 ``` 2. **修复权限**: ```bash chmod +x configure config.sub # 添加执行权限 ``` --- ### 总结排查流程 1. **优先解决网络问题**(手动下载依赖包)。 2. **更新系统识别脚本**(`config.sub`/`config.guess`)。 3. **检查环境变量与权限**(`SHELL`、文件权限)。 4. **重新配置并构建**(清理缓存后重试)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值