OpenCV cmake配置项BUILD_opencv_world的说明

按照默认的CMakeLists.txt配置,BUILD_opencv_world默认是OFF状态,没有勾选。编译生成的项目,会在build\lib\Debug目录下生成大量的lib和dll文件。例如:有时网上设置项目环境时有人在链接器附加依赖项时需添加下列lib,当照着配置后会报错找不到…lib,在你的/x64/lib文件夹下压根没这些东西是因为你在编译的时候勾选了BUILD_opencv_world。CMake中有一个选项名为BUILD_opencv_world,默认是不勾选的,它可以把所有的组件综合到一个名为opencv_world310d.lib或opencv_world310.lib的文件中,使以后配置工程时输入此单一文件即可。

<think>好的,我现在需要帮助用户解决在OpenCV项目中运行'make cmake_check_build_system'时出现的失败问题。首先,我需要理解用户的问题是什么。根据用户提供的引用[2],错误信息显示CMake在查找ActionlibExMsg.action文件时失败,路径不正确。这可能是因为opencv_contrib模块的路径配置有问题或者相关文件缺失。 接下来,我应该回顾用户提供的引用内容。引用[1]提到在build.sh脚本中设置了OPENCV_EXTRA_MODULES_PATH指向opencv_contrib的modules目录,而引用[3]则是在Windows环境下配置同样的路径。这说明无论是Linux还是Windows,正确设置opencv_contrib的路径是关键。用户的问题可能出在路径配置错误或者文件缺失。 我需要考虑可能的解决方案。首先,检查opencv_contrib的路径是否正确,是否存在对应的模块文件。其次,确保使用的OpenCVopencv_contrib版本一致,比如都是4.5.5。另外,可能需要清除之前的构建缓存,重新运行CMake。 用户可能没有正确克隆opencv_contrib仓库,或者克隆的分支与OpenCV版本不匹配。例如,如果主仓库是4.5.5,但contrib仓库是master分支的最新代码,可能会有兼容性问题。这时候需要切换到对应的版本标签。 另外,构建过程中可能需要启用非免费模块,即设置OPENCV_ENABLE_NONFREE=ON,但用户已经在脚本中设置了这一点。不过,某些模块可能还需要额外的依赖项,比如Actionlib可能需要ROS相关的库,但用户的环境可能缺少这些依赖,导致文件找不到。 最后,建议用户按照步骤重新配置,确保路径正确,版本一致,并清理构建目录。如果问题依旧,可能需要检查具体的错误日志,确认缺失的文件路径,并手动验证文件是否存在。</think>### 分步解决方案 1. **验证opencv_contrib路径配置** 检查`OPENCV_EXTRA_MODULES_PATH`参数是否指向正确的`opencv_contrib/modules`目录。例如,若OpenCV主目录为`opencv-4.5.5`,则贡献库路径应为`../opencv_contrib-4.5.5/modules`。路径错误会导致CMake无法找到模块文件[^1][^3]。 2. **确保版本一致性** OpenCV主库与opencv_contrib必须使用相同版本。例如,主库为4.5.5,则贡献库需通过以下命令克隆对应分支: ```bash git clone -b 4.5.5 https://github.com/opencv/opencv_contrib.git ``` 3. **清理构建目录并重新生成** 删除原有构建缓存,重新执行CMake配置: ```bash cd build rm -rf * # 清理所有残留文件 cmake -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.5/modules \ -D OPENCV_ENABLE_NONFREE=ON \ -D CMAKE_INSTALL_PREFIX=/usr/local .. ``` 4. **检查缺失文件是否存在** 根据错误日志中的路径(如`ActionlibExMsg.action`),手动验证文件是否存在于`opencv_contrib/modules/action/include/opencv2/action/`目录。若文件缺失,可能是仓库未完整克隆,需重新下载: ```bash cd opencv_contrib-4.5.5 git submodule update --init --recursive ``` 5. **安装依赖项(如涉及ROS)** 若Actionlib模块依赖ROS库,需安装相关依赖: ```bash sudo apt-get install ros-<distro>-actionlib-msgs # 替换为实际ROS版本 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值