恒7 2024-06-17 11:50 采纳率: 0%
浏览 14
已结题

vscode下编写第三方库opencv与pcl代码时没有代码提示

我在编译第三方库pcl和opencv的代码时,已经可以正常编译了,但是就是没有这两个库的代码提示,c++的代码提示倒是有,一涉及到pcl和opencv的代码提示就没有,望各位帮忙解决
我主要也不知道问题出在什么地方,我如果各位知道问题可能出在什么地方可以问我要更多我配置上的文件,我看见了就回复。
这是有代码提示的样子

img


这是没有代码提示的意思

img

这是我的c_cpp_properties.json的配置

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}",
                "/usr/local/include/pcl-1.14",
                "/usr/include",
                "/usr/local/include/opencv4",
                "/usr/local/include/vtk-9.3",
                "/usr/include/libqhull",
                "/usr/include/flann",
                "/usr/include/boost",
                "/usr/include/eigen3",
                "/usr/include/eigen3/Eigen/",
                "/usr/include/x86_64-linux-gnu/sys"

            ],
            "defines": [],
            "compilerPath": "/usr/bin/clang-14",
            "cStandard": "c17",
            "cppStandard": "c++14",
            "intelliSenseMode": "linux-clang-x64"
        }
    ],
    "version": 4
}

这是我tasks.json的配置

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                
                //"${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",

                "-I", "${workspaceFolder}/include",     // 项目include文件
                "-I", "$/usr/local/include/opencv4",          // opencv安装的include文件路径
                "-I", "$/usr/local/include/opencv4/opencv2",  
                "-L", "$/usr/local/lib",                //opencv安装的lib文件路径
                "-l", "opencv_core",                    //.so文件,文件原名称“libopencv_core.so”,注意需去除“lib”
                "-l", "opencv_imgproc",
                "-l", "opencv_imgcodecs",
                "-l", "opencv_video",
                "-l", "opencv_ml",
                "-l", "opencv_highgui",
                "-l", "opencv_objdetect",
                "-l", "opencv_flann",
                "-l", "opencv_imgcodecs",
                "-l", "opencv_photo",
                "-l", "opencv_videoio", 

                "-I","/usr/local/include/pcl-1.14",
                "-I","/usr/include/eigen3",
                "-I","/usr/local/include/vtk-9.3",
                "-I","/usr/include/libqhull",
                "-I","/usr/include/flann",
                "-I","/usr/include/boost",
                "-L","/usr/local/lib",
                "-l","pcl_io",
                "-l","pcl_visualization",
                "-l","pcl_common",
                // "-l","vtkFiltering",
                // "-l","vtkCommon",
                // "-l","vtkRendering",
                // "-l","vtkGraphics",
                "-l","vtkFiltersCore-9.3",
                "-l","vtksys-9.3",
                "-l","vtkCommonCore-9.3",
                "-l","vtkRenderingCore-9.3",
                "-l","vtkGeovisCore-9.3",
                "-I","/usr/include/x86_64-linux-gnu",
                "-l","boost_system",
                
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}


  • 写回答

15条回答 默认 最新

  • 专家-皆知 2024-06-17 11:50
    关注

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    要解决在VSCode中使用OpenCV和PCL时缺少代码提示的问题,你需要确保VSCode的IntelliSense正确地解析了这些库的头文件。你已经提供了c_cpp_properties.jsontasks.json的配置,但可能需要进行一些调整。

    步骤1:检查c_cpp_properties.json

    你的c_cpp_properties.json看起来已经包含了正确的includePath。但是,确保所有的路径都是正确的,并且没有打字错误或多余的字符(例如"/usr/include""${workspaceFolder}/**"之后列出可能是多余的)。此外,确认"/usr/local/include/pcl-1.14""/usr/local/include/opencv4"确实存在并且包含相应的头文件。

    步骤2:更新tasks.json

    tasks.json中,你使用了一些变量前缀$/,这似乎是不正确的。VSCode的变量应该使用${variableName}的格式。修改tasks.json中的路径变量,例如将"-I", "$/usr/local/include/opencv4"更改为"-I", "${workspaceFolder}/../usr/local/include/opencv4"或更正为绝对路径"-I", "/usr/local/include/opencv4"

    步骤3:清理并重新索引

    在VSCode中,尝试以下操作来清理并重新索引项目:

    1. 关闭所有打开的文件。
    2. 清除工作区缓存:File > Close Workspace然后再次打开。
    3. 执行Developer: Reload Window命令。
    4. 使用C/C++: Reload Language Server命令来强制重新索引。

    步骤4:检查VSCode插件

    确认你已经安装了适用于C++的Microsoft C/C++扩展。如果已安装,尝试卸载并重新安装它。

    步骤5:检查编译器版本

    由于你指定了"/usr/bin/clang-14"作为compilerPath,确保你的系统上安装了Clang 14,并且路径正确无误。

    步骤6:添加编译命令文件

    另一种方法是使用compile_commands.json文件。如果你的项目有复杂的构建过程,这可能是更好的选择。在项目根目录运行bear make(假设你使用的是make构建工具)来生成compile_commands.json文件,然后在c_cpp_properties.json中设置browse.pathbrowse.databasePath指向这个文件。

    如果上述步骤都不能解决问题,可能需要检查是否有防火墙或安全软件阻止了VSCode访问网络资源,因为VSCode的IntelliSense功能可能依赖于在线数据库。

    最后,确保你的VSCode和所有相关插件都是最新版本,有时候问题可能已经被修复在新版本中。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月17日
  • 修改了问题 6月17日
  • 修改了问题 6月17日
  • 创建了问题 6月17日

悬赏问题

  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 github录制项目
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住
  • ¥20 c语言写的8051单片机存储器mt29的模块程序
  • ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小