簡體   English   中英

無法在 VSCode 中包含本地 C++ 依賴項

[英]Unable to include local C++ dependencies in VSCode

我在為我的機器人操作系統 (ROS) 項目編寫代碼時遇到問題,但它與依賴項包含更相關。 據我所知,這是代碼:

// ROS
#include <ros/ros.h>

// MoveIt
#include "moveit/moveit_ros/planning_interface/planning_scene_interface/include/*"
#include "moveit/moveit_ros/planning_scene_interface/planning_scene_interface.h"
#include <moveit/move_group_interface/move_group_interface.h>

// TF2
#include <tf2_geometry_msgs/tf2_geometry_msgs.h>

// The circle constant tau = 2*pi. One tau is one rotation in radians.
const double tau = 2 * M_PI;

int main(){
    
}

問題是依賴項 2 到 4 沒有被 VSCode 識別。 我試圖在 c_cpp_properties.json 中包含依賴項 2 的必要路徑,如下所示:

"/home/george/ws_moveit/src/moveit/moveit_ros/planning_interface/planning_scene_interface/include/**"

完整的 c_cpp_properties.json 如下所示:

{
    "configurations": [
        {
            "browse": {
                "databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db",
                "limitSymbolsToIncludedHeaders": false
            },
            "includePath": [
                "/home/george/ws_moveit/devel/include/**",
                "/opt/ros/noetic/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_planners/chomp/chomp_motion_planner/include/**",
                "/home/george/ws_moveit/src/geometric_shapes/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_planners/chomp/chomp_interface/include/**",
                "/home/george/ws_moveit/src/moveit_resources/prbt_ikfast_manipulator_plugin/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_ros/benchmarks/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_plugins/moveit_ros_control_interface/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_ros/move_group/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_ros/occupancy_map_monitor/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_ros/robot_interaction/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_ros/moveit_servo/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_setup_assistant/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_plugins/moveit_simple_controller_manager/include/**",
                "/home/george/ws_moveit/src/moveit_visual_tools/include/**",
                "/home/george/ws_moveit/src/pick_place/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_planners/pilz_industrial_motion_planner/include/**",
                "/home/george/ws_moveit/src/moveit/moveit_planners/pilz_industrial_motion_planner_testutils/include/**",
                "/home/george/ws_moveit/src/rviz_visual_tools/include/**",
                "/home/george/ws_moveit/src/srdfdom/include/**",
                "/usr/include/**",
                "/opt/ros/noetic/include",
                "/home/george/ws_moveit/src/moveit/moveit_ros/planning_interface/planning_scene_interface/include/**"
            ],
            "name": "ROS",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu11",
            "cppStandard": "c++14",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

這並沒有解決我的問題。

包的結構方式可以在這里找到: https://github.com/ros-planning/moveit 它與我在驅動器上構建它們的方式基本相同,不同之處在於包含了主/用戶目錄。

有問題的文件應位於此處: https://github.com/ros-planning/moveit/tree/master/moveit_ros/planning_interface/planning_scene_interface/include/moveit/planning_scene_interface

我是否遺漏了一些細節或犯了錯誤?

#include "moveit/moveit_ros/planning_interface/planning_scene_interface/include/*"

include 語句中不允許使用通配符,除非您有一個非常……奇怪的預處理器。

直接引用要包含的文件,或使用直接包含所有要包含的文件的主 header 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM