Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV

简介: 通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。

在Linux(以Ubuntu为例)环境下,使用Visual Studio Code(简称VS Code)配置C/C++项目以调用OpenCV库,需要经过几个关键步骤。以下是详细的操作指南,旨在帮助您顺利设置开发环境。

1. 安装必要的软件包

安装VS Code

首先确保您已经安装了VS Code。如果尚未安装,可以通过终端命令安装:

sudo apt update
sudo apt install code
​

安装GCC/G++编译器

OpenCV的C++开发需要GCC/G++编译器。通常Ubuntu系统自带这些编译器,但如果没有,可以通过以下命令安装:

sudo apt install build-essential
​

2. 安装CMake

OpenCV的编译和安装依赖于CMake。使用以下命令安装CMake:

sudo apt install cmake
​

3. 下载并编译OpenCV

下载OpenCV源代码

访问OpenCV官方网站或GitHub仓库下载最新版的OpenCV和OpenCV_contrib源代码。假设您下载到了 ~/Downloads目录下:

cd ~/Downloads
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.x opencv
mv opencv_contrib-4.x opencv_contrib
​

请将上述命令中的 4.x替换为实际版本号。

配置与编译

创建一个构建目录并进入:

mkdir build && cd build
​

使用CMake配置OpenCV,确保指定了OpenCV_contrib的位置:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=~/Downloads/opencv_contrib/modules \
      -D ENABLE_NEON=ON \
      -D ENABLE_VFPV3=ON \
      -D BUILD_TESTS=OFF \
      -D INSTALL_PYTHON_EXAMPLES=OFF \
      -D OPENCV_GENERATE_PKGCONFIG=ON \
      -D BUILD_EXAMPLES=OFF ..
​

之后,编译并安装OpenCV:

make -j$(nproc)
sudo make install
sudo ldconfig
​

4. 配置VS Code

安装C/C++插件

在VS Code中,打开扩展市场,搜索并安装“C/C++”插件,该插件由Microsoft提供,用于增强C/C++语言支持。

创建工作区和项目

在您想要存放项目的目录下,创建一个新的文件夹,然后在VS Code中通过“文件 -> 打开文件夹...”打开此目录。

配置c_cpp_properties.json

在工作区中,通过 .vscode目录下的 c_cpp_properties.json文件配置编译器路径和包含目录:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/local/include",
                "/usr/local/include/opencv4"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/g++",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}
​

配置tasks.json

为了方便编译和运行程序,创建一个 tasks.json文件来定义编译任务:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "Build with g++",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-I/usr/local/include/opencv4",
                "-L/usr/local/lib",
                "-lopencv_core",
                "-lopencv_highgui",
                "-lopencv_imgproc"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": ["$gcc"],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
​

配置launch.json

为了调试,配置 launch.json文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (GDB)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build with g++"
        }
    ]
}
​

5. 测试项目

现在,您可以编写一个简单的OpenCV测试程序,比如显示一张图片:

#include <opencv2/opencv.hpp>
#include <iostream>

int main(int argc, char** argv) {
    cv::Mat img = cv::imread("test.jpg");
    if(img.empty()) {
        std::cout << "Could not open or find the image" << std::endl;
        return -1;
    }
    cv::imshow("Display window", img);
    cv::waitKey(0); // Wait for a keystroke in the window
    return 0;
}
​

保存文件后,按下F5启动调试,如果一切配置正确,您应该能看到图像显示窗口。

通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。

目录
相关文章
|
5月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
1172 1
|
4月前
|
Ubuntu 编译器 开发工具
在Ubuntu系统上搭建RISC-V交叉编译环境
以上步骤涵盖了在Ubuntu系统上搭建RISC-V交叉编译环境的主要过程。这一过程涉及了安装依赖、克隆源码、编译安装工具链以及设置环境变量等关键步骤。遵循这些步骤,可以在Ubuntu系统上搭建一个用于RISC-V开发的强大工具集。
485 22
|
4月前
|
Ubuntu 编译器 计算机视觉
Ubuntu 20.04环境下无法找到#include<opencv/cv.h>文件 - 解决方案。
希望这些信息能帮助你解决遇到的问题。
298 10
|
4月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
528 11
|
5月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
337 18
|
5月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
471 17
|
5月前
|
存储 Ubuntu 自动驾驶
运行Udacity的MPC控制项目指南(project_10)在Ubuntu 18.04环境下
以上步骤应该能够帮助您成功设置并运行Udacity MPC控制项目,在此过程中您将学习如何应用模型预测控制理论去指导车辆沿着轨迹自主驾驶,在模拟环境下测试其效果。这个过程不但涵盖了理论知识也有实践操作,对于学习自动驾驶车辆控制系统非常有帮助。
190 15
|
5月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
570 7
|
Ubuntu JavaScript 关系型数据库
Ubuntu 16.04 装机后的配置要点
Ubuntu 作为一个Linux的发行版,在桌面环境的易用性上做了很多改善,对推动Linux的推广做了很大的贡献。同时,它作为服务器的操作系统也越来越多的被使用。当然,服务器端可能更多的人在使用Redhat、CentOS等系统。
2979 0