Linux下编译OpenCV程序的参数

本文详细介绍了在Linux环境下使用pkg-config编译OpenCV程序所需的参数,并提供了一个具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下编译OpenCV程序所需要的参数如下

`pkg-config --cflags --libs opencv`


比如


g++  `pkg-config --cflags --libs opencv`   程序.cpp

### 使用 CMake 在 Linux 环境下编译 OpenCV 4 为了在 Linux 下成功使用 CMake 编译 OpenCV 4,以下是详细的说明和操作流程: #### 准备工作 确保已安装必要的依赖项。可以通过以下命令安装基础工具包: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev ``` 上述命令涵盖了构建环境所需的大部分依赖项[^1]。 --- #### 获取 OpenCV 源码 可以从 GitHub 上克隆最新的 OpenCVopencv_contrib(可选模块)仓库: ```bash git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.x # 切换到指定版本分支 mkdir build && cd build ``` 如果需要额外的功能支持,则可以同时获取 `opencv_contrib` 库: ```bash git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout 4.x ``` --- #### 配置 CMake 参数 进入创建的 `build` 文件夹并运行 CMake 命令来配置项目参数。例如: ```bash cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules .. ``` 这里的关键选项解释如下: - `-D CMAKE_BUILD_TYPE=Release`: 设置为 Release 或 Debug 构建模式。 - `-D CMAKE_INSTALL_PREFIX=/usr/local`: 定义最终安装目录,默认为 `/usr/local`。 - `-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules`: 如果需要启用扩展功能模块 (如 ARuco, DNN),则需指向 `opencv_contrib` 中的 modules 路径[^3]。 注意:对于某些特定硬件加速需求(比如 CUDA),还需要增加更多标志位,例如 `-D WITH_CUDA=ON` 来开启 GPU 支持[^4]。 --- #### 执行编译过程 完成配置之后即可启动实际编译阶段: ```bash make -j$(nproc) # 并行利用多核CPU加快速度 sudo make install ldconfig # 更新动态链接器缓存表 ``` 最后一步非常重要,它会刷新系统的共享库索引以便新安装的内容能够被正确识别加载[^2]。 --- #### 测试验证安装成果 编写简单的测试程序确认一切正常运作。下面是一个典型的例子用于检测摄像头捕获画面的能力: ```cpp #include <iostream> #include <opencv2/opencv.hpp> int main() { cv::VideoCapture cap(0); // 打开默认相机设备编号通常设为零 if (!cap.isOpened()) { std::cerr << "ERROR! Unable to open camera\n"; return -1; } cv::Mat frame; while(true){ cap >> frame; // 抓取下一帧图像数据 if(frame.empty()){ break; // 当前没有可用视频流结束循环退出 } imshow("Live Feed",frame); char c=(char)waitKey(10); if(c==27){ // ESC 键终止演示窗口显示 break; } } return 0; } ``` 保存此代码至文件名为 test.cpp 同时通过 g++ 编译执行该脚本查看效果如何呈现出来: ```bash g++ `pkg-config --cflags --libs opencv4` -o test_opencv test.cpp ./test_opencv ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值