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
​
AI 代码解读

安装GCC/G++编译器

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

sudo apt install build-essential
AI 代码解读

2. 安装CMake

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

sudo apt install cmake
​
AI 代码解读

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
​
AI 代码解读

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

配置与编译

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

mkdir build && cd build
​
AI 代码解读

使用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 ..
AI 代码解读

之后,编译并安装OpenCV:

make -j$(nproc)
sudo make install
sudo ldconfig
​
AI 代码解读

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
}
​
AI 代码解读

配置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
            }
        }
    ]
}
​
AI 代码解读

配置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++"
        }
    ]
}
​
AI 代码解读

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;
}
​
AI 代码解读

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

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

目录
打赏
0
3
3
0
451
分享
相关文章
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
39 11
在 Ubuntu 20.04 上安装和配置 Redis
在 Ubuntu 20.04 上安装和配置 Redis 的步骤如下:首先更新系统包,然后通过 `apt` 安装 Redis。安装后,启用并启动 Redis 服务,检查其运行状态。可选配置包括修改绑定 IP、端口等,并确保防火墙设置允许外部访问。最后,使用 `redis-cli` 测试 Redis 功能,如设置和获取键值对。
47 1
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
243 20
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
199 2
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
1187 3
C++ 调用Linux系统命令
一个简单的C++程序,Test函数用来测试调用Linux的系统命令ls -l #include #include #include #include #include #include using namespace std; const i...
2231 0
类和对象(下)C++
本内容主要讲解C++中的初始化列表、类型转换、静态成员、友元、内部类、匿名对象及对象拷贝时的编译器优化。初始化列表用于成员变量定义初始化,尤其对引用、const及无默认构造函数的类类型变量至关重要。类型转换中,`explicit`可禁用隐式转换。静态成员属类而非对象,受访问限定符约束。内部类是独立类,可增强封装性。匿名对象生命周期短,常用于临时场景。编译器会优化对象拷贝以提高效率。最后,鼓励大家通过重复练习提升技能!
类和对象(中 )C++
本文详细讲解了C++中的默认成员函数,包括构造函数、析构函数、拷贝构造函数、赋值运算符重载和取地址运算符重载等内容。重点分析了各函数的特点、使用场景及相互关系,如构造函数的主要任务是初始化对象,而非创建空间;析构函数用于清理资源;拷贝构造与赋值运算符的区别在于前者用于创建新对象,后者用于已存在的对象赋值。同时,文章还探讨了运算符重载的规则及其应用场景,并通过实例加深理解。最后强调,若类中存在资源管理,需显式定义拷贝构造和赋值运算符以避免浅拷贝问题。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等