Ubuntu下VSCode编译报错opencv2/core.hpp不存在如何解决
问题原因说明
c_cpp_properties.json 中配置的includePath仅作用于VSCode的IntelliSense语法提示模块,不会传递给实际执行编译的GCC编译器,因此编译时编译器无法找到OpenCV的头文件路径,才会抛出找不到opencv2/core.hpp的报错。
解决方案
根据你使用的编译方式选择对应配置:
1. 采用VSCode tasks.json直接编译
修改项目.vscode目录下的tasks.json文件,在编译参数args中添加OpenCV头文件查找和库链接参数,推荐直接使用pkg-config自动获取参数,配置示例如下:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc 生成活动文件", "command": "/usr/bin/g++", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", // 新增下面这行配置 "`pkg-config", "--cflags", "--libs", "opencv4`" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "调试器生成的任务。" } ], "version": "2.0.0" }
如果pkg-config找不到opencv4,可手动指定头文件路径,将新增行替换为-I/usr/include/opencv4,同时后续还要补充对应的库链接参数如-lopencv_core -lopencv_imgproc -lopencv_highgui等你用到的模块。
2. 采用CMake管理项目编译
修改项目根目录下的CMakeLists.txt,添加OpenCV的查找、头文件引入和库链接配置,示例如下:
cmake_minimum_required(VERSION 3.10) project(your_project_name) set(CMAKE_CXX_STANDARD 14) # 查找OpenCV库 find_package(OpenCV REQUIRED) # 引入OpenCV头文件目录 include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(your_executable_name your_source_file.cpp) # 链接OpenCV库到目标程序 target_link_libraries(your_executable_name ${OpenCV_LIBS})
验证方法
你可以先在终端执行以下命令,确认OpenCV本身安装和路径配置正常:
g++ your_test_file.cpp -o test_output `pkg-config --cflags --libs opencv4`
如果该命令可以正常编译生成可执行文件,说明OpenCV本身没有问题,只需要按上面的步骤配置VSCode的编译参数即可。
内容的提问来源于stack exchange,提问作者wbadry
相关产品推荐
相关产品推荐

