痛点不在这里,需要明白内在的编译逻辑,而不是表层现象。诸如此类问题今后有很多,不可能每次都翻箱倒柜,需要做的是从容面对,仔细分析,找出问题的根源所在。
话不多说,直接给出配置的具体方法,这是一个通用版本,只要你是使用的ubutu系统,且安装的是C++版本的opencv基本上都可以通过该方法来实现。
1 step:首先新建文件夹,并在该文件下创建cpp文件,然后使用vscode打开该文件夹。
2 step:利用ctrl+shift+p打开command line,寻找launch.json,找到后如下配置该文件。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.o",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"preLaunchTask": "build",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
3 step:寻找task.json,如下配置该文件。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
// "taskName": "echo",
"label": "build",
"type": "shell",
"command": "/usr/bin/g++",
"args":[
"-g", "${file}","-o","${fileBasenameNoExtension}.o",
"-I","/usr/local/include",
"-I","/usr/local/include/opencv",
"-I","/usr/local/include/opencv2",
"-L","/usr/local/lib",
"-l","opencv_core",
"-l","opencv_highgui",
"-l","opencv_imgproc",
"-l","opencv_imgcodecs",
"-l","opencv_video",
"-l","opencv_videoio"
],
}
]
}
4 step: 寻找c_cpp_properties.json,如下配置该文件。
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include",
"/usr/local/include/opencv",
"/usr/local/include/opencv2"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
5 step: 如果以上文件找不到,可以在文件加的目录下自行创建。