Comme le titre l'indique, puis-je remplir automatiquement c_cpp_properties.json à partir d'un Makefile existant?
Éditer:
Pour ceux qui essaient d'importer des makefiles, j'ai trouvé un ensemble de scripts qui effectuent exactement ce que je voulais réaliser, la gestion de projets intégrés STM32 via VS Code. Si vous creusez dans le dossier des scripts, vous pouvez trouver l'analyseur de création et le populateur de fichiers de projet VSCode.
Ici le repo, profitez-en!
Cette réponse peut ne pas vous donner entièrement ce que vous voulez, mais nous espérons qu'elle vous aidera à configurer votre environnement VS Code.
Dans le titre de votre question, vous mentionnez "Projets Makefile", ce qui indique que vous avez la mauvaise impression que les Makefiles (GNU) capturent les paramètres du projet d'une manière similaire aux fichiers de projet Visual Studio. Les Makefiles ne fonctionnent pas comme ça et la réponse courte à votre question est Non, il ne semble pas y avoir de moyen pour "importer" les Makefiles dans VS Code et lui faire définir automatiquement des valeurs dans votre c_cpp_properties.json
fichier.
Cela dit, il existe d'autres mécanismes qui peuvent vous aider à démarrer avec VS Code dans votre situation, en fonction des autres éléments que vous avez dans votre chaîne d'outils.
VS Code fonctionne avec la prémisse qu'il ouvre un ou plusieurs répertoires dans votre système de fichiers. Lorsque vous le faites, il analysera automatiquement tous ses sous-répertoires, affichera l'arborescence et effectuera des peluches (si activé) pour détecter les problèmes. En effet, les répertoires d'inclusion doivent être ajoutés manuellement à votre c_cpp_properties.json
fichier mais pour ajouter récursivement tous vos sous-répertoires à la liste des répertoires d'inclusion, vous pouvez utiliser l'expression
"${workspaceRoot}/**"
comme l'un des éléments de votre paramètre includePath
. Voir le billet de blog Mise à jour de mai 2018 de l'extension C/C++ du code Visual Studio - La configuration IntelliSense est devenue beaucoup plus facile! pour plus de détails. Cela résout souvent beaucoup de symboles manquants. Si vous utilisez également des bibliothèques externes ou tierces, vous devez les ajouter manuellement à votre paramètre includePath
manuellement, il n'y a aucun moyen de contourner cela.
De plus, vous pouvez créer des tâches de code VS pour exécuter votre commande make
à votre guise. Ceci est expliqué ici: Intégrer avec des outils externes via des tâches . Microsoft C/C++ Extension est livré avec un ensemble de soi-disant problemMatchers qui analysent la sortie de votre commande et peuvent interpréter cela pour certains compilateurs connus. Vous verrez des hyperliens pour les erreurs et un avertissement pour naviguer directement vers l'emplacement associé dans votre code.
Un exemple d'une telle tâche peut ressembler à ceci:
{
"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"
]
}
Pour ceux qui essaient d'importer des makefiles, j'ai trouvé un ensemble de scripts qui effectuent exactement ce que je voulais réaliser, la gestion de projets intégrés STM32 via VS Code. Si vous creusez dans le dossier des scripts, vous pouvez trouver l'analyseur de création et le populateur de fichiers de projet VSCode.
Ici le repo, profitez-en!