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库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。

目录
相关文章
|
4月前
|
存储 Ubuntu 自动驾驶
运行Udacity的MPC控制项目指南(project_10)在Ubuntu 18.04环境下
以上步骤应该能够帮助您成功设置并运行Udacity MPC控制项目,在此过程中您将学习如何应用模型预测控制理论去指导车辆沿着轨迹自主驾驶,在模拟环境下测试其效果。这个过程不但涵盖了理论知识也有实践操作,对于学习自动驾驶车辆控制系统非常有帮助。
178 15
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
703 1
Linux C/C++之IO多路复用(aio)
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
编译器 C语言 C++
配置C++的学习环境
【10月更文挑战第18天】如果想要学习C++语言,那就需要配置必要的环境和相关的软件,才可以帮助自己更好的掌握语法知识。 一、本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。 二、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插
536 6
|
资源调度 Linux 调度
Linux C/C++之线程基础
这篇文章详细介绍了Linux下C/C++线程的基本概念、创建和管理线程的方法,以及线程同步的各种机制,并通过实例代码展示了线程同步技术的应用。
255 0
Linux C/C++之线程基础
|
Linux C++
Linux C/C++之IO多路复用(poll,epoll)
这篇文章详细介绍了Linux下C/C++编程中IO多路复用的两种机制:poll和epoll,包括它们的比较、编程模型、函数原型以及如何使用这些机制实现服务器端和客户端之间的多个连接。
528 0
Linux C/C++之IO多路复用(poll,epoll)
|
Linux C语言 计算机视觉
OpenIN2 Linux 编译OpenCV 报错undefined reference to `xxx@xxx‘
OpenIN2 Linux 编译OpenCV 报错undefined reference to `xxx@xxx‘
437 0
OpenIN2 Linux 编译OpenCV 报错undefined reference to `xxx@xxx‘
|
Linux 计算机视觉
LINUX编译opencv
LINUX编译opencv
205 0
|
Linux 计算机视觉
LINUX编译opencv
LINUX编译opencv
184 0
|
Ubuntu Linux 计算机视觉
Linux 下编译安装OpenCV【转】
转自:http://www.cnblogs.com/emouse/archive/2013/02/22/2922940.html OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。
1380 0