windows cmake 编译 opencv455 BUILD_opencv_world出错
时间: 2023-10-09 21:17:57 浏览: 599
在 Windows 上使用 CMake 编译 OpenCV 4.5.5 时,如果在编译 BUILD_opencv_world 时出错,可能是因为缺少必要的依赖库或设置不正确。
以下是一些可能的解决方案:
1. 确保已安装所有必要的依赖库,例如:CUDA、TBB、IPP、Eigen、Qt 等。可以在 CMake 的 GUI 界面中查看缺失的依赖库并进行安装。
2. 确保设置正确的参数,例如:OPENCV_EXTRA_MODULES_PATH、OPENCV_ENABLE_NONFREE、WITH_CUDA、WITH_TBB、WITH_IPP、WITH_EIGEN、WITH_QT 等。可以在 CMake 的 GUI 界面中设置这些参数。
3. 禁用 BUILD_opencv_world,只编译需要的模块。可以在 CMake 的 GUI 界面中取消勾选 BUILD_opencv_world 并选择需要编译的模块。
4. 尝试使用不同的编译器或版本,例如:Visual Studio 2017、2019 或 Clang 等。
5. 尝试使用不同的生成器,例如:Visual Studio、Ninja、Makefile 等。
6. 尝试使用 OpenCV 的预编译版本,避免编译过程中的问题。可以在官方网站或 GitHub 上下载预编译版本。
希望以上解决方案能够帮助你解决问题。如果还有其他问题,请参考 OpenCV 的官方文档或论坛。
相关问题
cmake编译 OpenCV 和 OpenCV_contrib
使用 CMake 来编译 OpenCV 和 OpenCV_contrib 是一个常见的步骤,尤其当你想要获得最新的特性和改进或是需要自定义配置时。以下是详细的指南帮助你在本地环境中编译这两个库。
### 准备工作
首先,确保你已经安装了必要的依赖项和工具链:
- **CMake**:用于生成构建系统文件。
- **Git**:获取最新源码(如果直接从 GitHub 克隆的话)。
- **编译器**:如 GCC、Clang 或 Visual Studio 等,取决于操作系统的选择。
- **Python**(可选):如果你想同时编译 Python API 支持。
此外,对于某些特定的功能模块(比如 CUDA 加速),也需要相应环境的支持。
### 步骤详解
#### 1. 获取 OpenCV 和 OpenCV_contrib 源码
打开终端或命令提示符,分别克隆 OpenCV 和 OpenCV_contrib 的 Git 仓库到本地计算机的一个合适位置:
```bash
git clone https://github.com/opencv/opencv.git
cd ..
git clone https://github.com/opencv/opencv_contrib.git
```
保证两个项目的目录处于同一层级内以便后续引用 `OPENCV_EXTRA_MODULES_PATH` 参数。
#### 2. 创建并进入构建目录
创建一个新的空文件夹作为构建空间,并切换至该目录:
```bash
mkdir -p build && cd build
```
避免在原始源代码树里执行原地构建可以防止潜在的问题发生。
#### 3. 配置选项并通过 CMake 设置项目
现在我们可以开始用 CMake 对工程进行初步设置了。这里我们假设你是基于 Unix/Linux/MacOS 平台,而对于 Windows 用户则应当选择合适的生成器(Generator)。接下来是一些常用参数的例子:
```bash
cmake \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \ # 启用 contrib modules
-D BUILD_opencv_world=ON \ # 单独打包成 world 库 (optional)
-D WITH_CUDA=OFF \ # 如果不需要 CUDA 支持就禁掉它 (optional)
-D INSTALL_PYTHON_EXAMPLES=OFF \ # 不安装 Python 示例程序 (optional)
../opencv \ # 标明顶层 CMakeLists.txt 文件所在的位置
```
注意调整上述选项以满足实际需求;例如是否开启 CUDA 加速、选择目标平台架构等。
#### 4. 编译与安装
一旦所有设置都已完成无误之后就可以启动编译流程啦!
对于 Linux/macOS:
```bash
make -j$(nproc) # 利用全部核心加速编译速度 (-j8 表示最多并发八个进程)
sudo make install # 把产物复制到系统的标准路径中去
```
Windows 使用 MSBuild 命令代替 make :
```cmd
msbuild ALL_BUILD.vcxproj /m # 编译整个解决方案
msbuild INSTALL.vcxproj # 安装生成结果到指定位置
```
### 成功标志
当看到类似“[100%] Built target ...”的信息出现在屏幕上即表示编译顺利完成。你可以通过简单的测试案例来验证新版本的 OpenCV 功能是否正常运作。
---
###
cmake编译opencv490没有BUILD_opencv_world
### 启用 `BUILD_opencv_world` 选项的方法
在使用 CMake 编译 OpenCV 4.9.0 的过程中,可以通过设置 `-DBUILD_opencv_world=ON` 来启用 `opencv_world` 库的构建。此库会将所有的核心模块以及额外模块打包到单个共享库文件中,从而简化项目的依赖管理。
以下是具体的配置方法:
#### 配置命令
当运行 CMake 进行配置时,在原有的参数基础上增加 `-DBUILD_opencv_world=ON` 参数即可[^1]。完整的 CMake 调用示例如下:
```bash
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_CXX_STANDARD=14 \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib/modules \
-D BUILD_opencv_world=ON ..
```
如果是在 Windows 平台上使用 Visual Studio,则可以按照以下方式调用 CMake[^2]:
```cmd
cmake -G "Visual Studio 15 2017 Win64" ^
-DOPENCV_EXTRA_MODULES_PATH=D:\SDK\OpenCV\opencv_contrib-4.9.0\modules ^
-DBUILD_opencv_python3=OFF ^
-DBUILD_TESTS=OFF ^
-DBUILD_JAVA=OFF ^
-DBUILD_PERF_TESTS=OFF ^
-DBUILD_opencv_world=ON ^
..\..\src\opencv-4.9.0
```
#### 构建过程中的注意事项
1. **路径调整**:确保指定的 `OPENCV_EXTRA_MODULES_PATH` 正确指向 `opencv_contrib` 中的 modules 文件夹。
2. **性能优化**:为了加速编译过程,可以在多核 CPU 上通过 `make -jN` 或者 Visual Studio 的并行构建功能来提升效率[^3]。
3. **模块排除**:如果不希望某些模块被包含在最终的 `opencv_world` 库中,可通过设置对应的模块开关为 OFF(如 `-DBUILD_opencv_java=OFF`),这样它们不会影响整体构建结果。
完成上述操作后继续执行后续的构建流程 (`make`, `sudo make install`) 即可成功生成带有 `opencv_world` 功能支持的版本。
---
阅读全文
相关推荐













