Table des matières
TLDR
J'ai créé le fichier .vscode/settings.json pour ne plus avoir d'erreur dans mon éditeur de code quand je code en C++. Pour faire les TPs de PABT, son contenu est le suivant :
{
"files.associations": {
"__locale": "cpp",
"locale": "cpp"
},
"cmake.ignoreCMakeListsMissing": true,
"clangd.fallbackFlags": [
"-I${workspaceFolder}/mthread/include",
"-I${workspaceFolder}/mthread/src",
"-std=c++17",
"-D_XOPEN_SOURCE=600",
],
}
Contexte
Avez-vous choisi votre éditeur de code préféré ?
Pour ma part, le temps de faire la transition sur Neovim, je me suis rabattu sur VSCodium. Sur les grandes lignes, c'est la même chose que VSCode, sauf que c'est open-source et sans télémétrie (et sans les extensions officielles de Microsoft). Si vous adhérez à l'esprit des projets open-source, je ne peux que vous recommander de faire ce changement également, vous verrez, on ne voit quasiment pas la différence !
Ainsi, depuis que je suis passé sur VSCodium, je prends davantage le temps de bien configurer (et limiter) les diverses extensions que j'utilise. En particulier, j'avais remarqué que, pendant mes TPs de PABT, j'avais des erreurs de partout indiquées sur mon éditeur de code. Bien que cela n'affectait pas la compilation, c'était pour autant un petit peu dérangeant, et je n'ai pas pu pleinement profité de l'extension associé au C++.
Je me suis alors penché sur les paramètres de certaines extensions.
settings.json
Sans entrer dans trop les détails, j'ai relevé 2 principales méthodes pour configurer les extensions :
- Cliquer sur l'engrenage de l'extension quand on clique dessus,
- Modifier le fichier
settings.json.
En effet, le fichier settings.json permet de modifier le comportement de certaines extensions. On retrouve notamment le fichier settings.json propre à l'utilisateur, mais il est aussi possible de créer un fichier settings.json propre au projet. Ce dernier se situe à la racine du projet, dans le dossier .vscode, soit .vscode/settings.json.
À titre personnel, dans le cadre des TPs de PABT, j'ai utilisé l'extension clangd sur VSCodium. Cette dernière, sans l'avoir paramétrée au préalable, faisait que je voyais plein d'erreurs sur VSCodium, alors que j'en n'avais aucune à la compilation. Après quelques recherches sur Internet, je suis arrivé au fichier de configuration spécifique à l'UE suivant :
{
"files.associations": {
"__locale": "cpp",
"locale": "cpp"
},
"cmake.ignoreCMakeListsMissing": true,
"clangd.fallbackFlags": [
"-I${workspaceFolder}/mthread/include",
"-I${workspaceFolder}/mthread/src",
"-std=c++17",
"-D_XOPEN_SOURCE=600",
],
}
En bref, les propriétés ajoutées ici se sont additionnées à celles du fichier de configuration d'utilisateur. Maintenant, quand j'ouvre VSCodium à la racine du projet, cela prend en compte les interfaces présentes dans le dossier mthread, les conventions établies de C++17, ainsi qu'une autre considération spécifique à macOS (le "-D_XOPEN_SOURCE=600", donc vous pouvez le retirer si vous n'êtes pas concernés). À présent, je n'ai plus d'erreur d'include dans les fichiers sources, et je peux coder en toute tranquilité ! Enfin, je n'ai presque plus d'erreur : il faut remplacer #include <malloc.h> par #include <stdlib.h> car malloc.h est déprécié depuis des décennies.
Cas de VSCode
Une petite aparté spécifique au développement en C/C++ sur VSCode : j'ai cru comprendre qu'un fichier c_cpp_properties.json doit être créé dans le dossier .vscode si vous utilisez l'extension officielle de Microsoft. Je vous laisse le loisir de découvrir comment le paramétrer si vous vous contentez de VSCode pour réaliser vos projets comportant du C/C++.
Autre
Je vous invite vivement à faire des recherches pour vos divers projets si vous rencontrez des problèmes similaires et pour d'autres langages. Généralement, ça se trouve en 5min sur la toile, et c'est toujours plus agréable de coder dans un environnement propre !