タイトルが言っているように、既存のMakefileからc_cpp_properties.jsonを自動的に入力できますか?
編集:
メイクファイルをインポートしようとしている他の人のために、私が達成したいことを正確に実行する一連のスクリプト、つまりVS Codeを介したSTM32組み込みプロジェクトの管理を見つけました。スクリプトフォルダーを掘り下げると、makeパーサーとVSCodeプロジェクトファイルポピュレーターが見つかります。
ここ レポ、お楽しみください!
この答えはあなたが望むものを完全に与えるわけではないかもしれませんが、うまくいけばそれはあなたのVS Code環境を設定するのに役立ちます。
質問のタイトルでは、「メイクファイルプロジェクト」について言及しています。これは、(GNU)メイクファイルがVisual Studioプロジェクトファイルと同様の方法でプロジェクト設定をキャプチャするという誤った印象を持っていることを示しています。 Makefileはそのように機能せず、質問に対する短い答えは「いいえ」です。MakefileをVS Codeに「インポート」し、c_cpp_properties.json
ファイルに自動的に値を設定する方法はないようです。
そうは言っても、ツールチェーンにある他の要素に応じて、状況でVSコードを使い始めるのに役立つ他のメカニズムがいくつかあります。
VS Codeは、ファイルシステム内の1つ以上のディレクトリを開くという前提で動作します。これを行うと、すべてのサブディレクトリが自動的にスキャンされ、ツリーが表示され、(有効になっている場合は)リンティングが実行され、問題が検出されます。実際、インクルードディレクトリはc_cpp_properties.json
ファイルに手動で追加する必要がありますが、すべてのサブディレクトリをインクルードディレクトリのリストに再帰的に追加するには、次の式を使用できます。
"${workspaceRoot}/**"
includePath
設定の要素の1つとして。詳細については、ブログの投稿 Visual Studio Code C/C++拡張2018年5月の更新– IntelliSense構成が非常に簡単になりました! を参照してください。これにより、多くの欠落したシンボルが解決されます。外部またはサードパーティのライブラリも使用している場合は、それらを手動でincludePath
設定に追加する必要があります。これを回避する方法はありません。
さらに、VS Codeタスクを作成して、make
コマンドを自由に実行できます。これについては、ここで説明します: タスクを介して外部ツールと統合 。 Microsoft C/C++ Extension には、コマンドの出力を解析し、特定の既知のコンパイラでそれを解釈できる、いわゆるproblemMatcherのセットが付属しています。エラーと警告のハイパーリンクが表示され、コード内の関連する場所に直接移動します。
このようなタスクの例は次のようになります。
{
"label": "Build All Debug",
"type": "Shell",
"command": "make -f path/to/Makefile DEBUG=1",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": [
"$gcc"
]
}
メイクファイルをインポートしようとしている他の人のために、私が達成したいことを正確に実行する一連のスクリプト、つまりVS Codeを介したSTM32組み込みプロジェクトの管理を見つけました。スクリプトフォルダーを掘り下げると、makeパーサーとVSCodeプロジェクトファイルポピュレーターが見つかります。
ここ レポ、お楽しみください!