Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

vscodeでC++の拡張機能が不可解なエラーを出す

Q&A

Closed

VSCodeでROSの開発をしているのですが、エラーが出ています。ビルドは通り、include pathも適切に設定しているはずです。非常に不可解なので助けてください。

発生している問題・エラー

Screenshot from 2024-12-09 01-06-02.png

該当するソースコード

c_cpp_properties.json
{
  "configurations": [
    {
      "browse": {
        "databaseFilename": "${default}",
        "limitSymbolsToIncludedHeaders": false
      },
      "includePath": [
        "/home/yugo/catkin_ws/devel/include/**",
        "/opt/ros/noetic/include/**",
        "/usr/include/**"
      ],
      "name": "ROS",
      "intelliSenseMode": "gcc-x64",
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "gnu11",
      "cppStandard": "c++14"
    }
  ],
  "version": 4
}
#include <cppad/cppad.hpp>
#include <iostream>
#include "ros/ros.h"

int main( int argc, char** argv )
{
    ros::init( argc, argv, "optimize_test" );

    std::vector<CppAD::AD<double>> ax(2);
    CppAD::Independent(ax);
    std::vector<CppAD::AD<double>> ay(1);
    ay[0] = 2 * CppAD::pow(ax[0], 3) + CppAD::pow(ax[1], 2);
    CppAD::ADFun<double> f(ax, ay);

    std::vector<double> x(2);
    x[0] = 2;
    x[1] = 3;
    std::vector<double> fw0 = f.Forward(0, x);
    std::cout << fw0[0] << "=f(" << x[0] << "," << x[1] << ")" << std::endl;

    std::vector<double> jac = f.Jacobian(x);
    std::cout << jac[0] << "=dy/dx0(" << x[0] << "," << x[1] << ")" << std::endl;
    std::cout << jac[1] << "=dy/dx1(" << x[0] << "," << x[1] << ")" << std::endl;
}

自分で試したこと

半年前まで問題なかった他のワークスペースでは、補完やエラー表示、変数の色の変化が全く効かなかったため、拡張機能周りの設定と踏んでいます。
拡張機能の再インストール、vscode本体の再インストールまでしましたがだめでした。また、c/c++の拡張機能を半年前のバージョン(v1.21.6)まで戻しましたがだめでした。
buildは通ります。

以下半年前まで動いていたワークスペース(パッケージ)です。classの中身は削除していますが、ビルドも通りましたし症状も同じです。

症状
Screenshot from 2024-12-09 01-20-30.png

{
  "configurations": [
    {
      "browse": {
        "databaseFilename": "${default}",
        "limitSymbolsToIncludedHeaders": false
      },
      "includePath": [
        "/home/yugo/catkin_ws/devel/include/**",
        "/opt/ros/noetic/include/**",
        "/usr/include/**"
      ],
      "name": "ROS",
      "intelliSenseMode": "gcc-x64",
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "gnu11",
      "cppStandard": "c++14"
    }
  ],
  "version": 4
}
0

1Answer

確認ですが、問題なのはIntelliSenseの挙動ですか?
それともビルドがエラーになる(ビルドできない)のでしょうか?

0Like

Comments

  1. IntelliSenseの挙動です。catkin buildは通っています。

  2. ありがとうございます。記事の通り、キャッシュやデータベースなどリセットしてみましたが変わりませんね...

Your answer might help someone💌