ubuntu18.04VScode配置c++ opencv环境【20通用】

如果你是需要完全全新、从头开始配置 c++ 环境的,建议参考 链接 按上面的步骤把 launch.json 和 tasks.json 建好,然后再尝试复制我下面给的。


目录:

  • 配置 launch.json 文件
  • 配置 task.json 文件
  • 配置 c_cpp_properties.json 文件
  • 报错与解决方法
  • 实例测试

一、配置 launch.json 文件

如果你是之前配置过 c++ 环境了:最上面的任务栏->运行( Debug )->打开配置( C )->会弹出来

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
    {"name":"Python: 当前文件","type":"python","request":"launch","program":"${file}","console":"integratedTerminal"},
        {
            "name": "(gdb) Launch",
            "preLaunchTask": "build", /*调试前执行 'build'选项*/
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}", /*选择要调试的文件路径*/
            //"program": "${workspaceFolder}/bin/run.o", /*选择要调试的文件路径*/
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
           // "preLaunchTask": "g++", /*调试前执行 'build'选项*/
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

二、配置 task.json 文件

同样如果你是之前配置过了但是忘了在哪打开的:Ctrl+Shift+P ( 或者 F1 ),然后输入:Task ->配置任务(中文)或者 Configure Task,一般都能找到。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",	/* 要与launch.json文件里的preLaunchTask的内容保持一致 */
            "type": "shell",/* 定义任务是被作为进程运行还是在 shell 中作为命令运行,默认是shell,即是在终端中运行,因为终端执行的就是shell的脚本 */
            "command": "g++",/* 这里填写你的编译器地址 */
            "args": [
                /* 说明整个项目所需的源文件路径(.cpp) */
                "-g", 
                "${file}", 
                "-std=c++11", // 静态链接
                "-o", 	/* 编译输出文件的存放路径 */
                "${fileDirname}/${fileBasenameNoExtension}",/* 要与launch.json文件里的program的内容保持一致 */
                "-I","${workspaceFolder}/armor_pre/",
                //"-I","${workspaceFolder}/armor_test_avi/",
                "-static-libgcc",
                "-Wall",// 开启额外警告
                /* 说明整个项目所需的头文件路径(.h)*/
                "-I","${workspaceFolder}/",
                "-I","/usr/local/include/",
                "-I","/usr/local/include/opencv4/",
                "-I","/usr/local/include/opencv4/opencv2/",
                "/usr/local/lib/libopencv_*",	/* OpenCV的lib库 */
                "/usr/lib/x86_64-linux-gnu/librealsense2.so", /*深度学习相机realsense2 D435的库*/
                //"/home/joyce/github/librealsense/examples/example.hpp"
            ]
        }
     ]
}

三、配置 c_cpp_properties.json 文件

1、如果你是之前配置过了但是忘了在哪打开的:Ctrl + Shift + P ,然后输入:C / C++ -> Edit ->看到一个 Edit Configuraions(JSON) ,点他。

2、若需要新建此文件:

Ctrl + Shift + P 调出命令行窗口,输入 ” C / C++ “,选择 ” 编辑配置( UI )”

② 跳转到 intelliSense 配置界面后,作出如下修改:

配置名称:Linux

编译器路径:/usr/bin/gcc

IntelliSense 模式: gcc-x64

包含路径:

 ${workspaceFolder}/**/usr/local/include/
/usr/local/include/opencv4/
/usr/local/include/opencv4/opencv2/

C 标准:c11

C++ 标准:c++14

配置完后,在 .vscode 文件夹下会多出一个 c_cpp_properties.json 文件。

③ 将以下内容复制,注意 ” includePath “里的其他库路径也可以自行添加。

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/local/include/",
                "/usr/local/include/opencv4/",
                "/usr/local/include/opencv4/opencv2/",
                //"/usr/include/librealsense2/" /*深度学习相机realsense2 D435的库*/
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

四、报错与解决方法

1、/home/joyce/workspace/vscode/11: file not recognized: 不可识别的文件格式collect2: error: ld returned 1 exit status终端进程“/bin/bash ‘-c’, ‘g++ -g /home/joyce/workspace/vscode/11 -std=c++11 -o 11.out’”启动失败(退出代码: 1)。终端将被任务重用,按任意键关闭。

解决:新建文件的时候记得把.cpp加上,还有就是不要把task.json文件当成cpp文件来编译2020-11-3:还有可能就是路径错了,改成下面这个。”${fileDirname}/${fileBasenameNoExtension}”,

参考链接:https://blog.csdn.net/weixin_44605210/article/details/108402167

2、通用方法:针对 launch.json 与 task.json 文件,在出问题的时候可以先保证 c++ 能用,然后在此基础上手动添加与 OpenCV 相关的内容。


五、实例测试

新建一个 test.cpp 文件,输入以下测试代码,注意修改图片路径:

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

using namespace std;
using namespace cv;
int main()
{
    Mat src=imread("/home/joyce/图片/t34-85.jpg");
    imshow("1",src);
    waitKey(0);

}

成功!


一些碎碎念:

对于本人而言,在写下这篇东西的时候,其实已经有过很多已经配置好能用的 .vscode 文件了,基本上只要去已经有的项目文件里复制粘贴就行……但是以后万一有需要重新配置的时候呢……

【待更新:关于 vscode 这些配置文件的详细解读,会写一篇笔记放上来的。】


发表回复 0

Your email address will not be published. Required fields are marked *