Visual Studio Code IncludePath ROS 标头问题

问题描述 投票:0回答:3

我在

ROS2 教程中的 
#include "rclcpp/rclcpp.hpp" 的陈述下得到了波浪线我正在查看并更新
c_cpp_properties.json
中的 IncludePath 并没有解决问题。

这是我的 c_cpp_properties 文件的样子:

{
    "configurations": [
        {
            "browse": {
                "databaseFilename": "",
                "limitSymbolsToIncludedHeaders": true
            },
            "includePath": [
                "/opt/ros/foxy/include/**",
                "/home/thomas/ws_ros2/src/cpp_pubsub/include/**",
                "/usr/include/**"
            ],
            "name": "ROS",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++14",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

ROS 扩展识别出我正在使用 ROS 包,因此我的

settings.json
看起来像这样:

{
    "python.autoComplete.extraPaths": [
        "/home/thomas/ws_ros2/install/warehouse_ros_mongo/lib/python3.8/site-packages",
        "/home/thomas/ws_ros2/install/moveit_msgs/lib/python3.8/site-packages",
        "/opt/ros/foxy/lib/python3.8/site-packages"
    ],
    "C_Cpp.errorSquiggles": "Enabled"
}

但无论我做什么,我似乎都无法摆脱这些曲线。

c++ visual-studio-code ros
3个回答
4
投票

c_cpp_properties.json
中删除configurationProvider就可以了,智能感知现在可以工作了。


0
投票

作为参考:我有同样的问题,但由于不同的原因:

事实证明,就我而言,这是由于我的工作区中有多个根文件夹(通过人民币和“将文件夹添加到工作区...”)。

通过将 .vscode 文件夹(带有

c_cpp_properties.json
)复制到每个根文件夹,似乎已解决。


0
投票
  1. 使用以下内容更新
    "includePath": []
    文件中的
    .vscode/c_cpp_properties.json
    配置:
            "includePath": [
                "${workspaceFolder}/**",
                "/opt/ros/noetic/include/**",
                "/usr/include/eigen3"
            ],
  1. 直接用 VScode
    ros workspace
    打开你的
    code my_ros_ws
    。 两者都适合我
© www.soinside.com 2019 - 2024. All rights reserved.