J'essaye d'écrire un outil en utilisant libTooling. Je l'ai configuré pour qu'il compile avec l'exemple de la documentation LLVM. Cependant, C / C ++ Intellisense semble ne pas fonctionner avec les projets CMake.
Mon outil se trouve dans:
p >
Maintenant, l'extension C / C ++ essaie de lire le fichier compile_config.json et me dit que
est introuvable, en utilisant includePath
à partir de c_cpp_properties.json
à la place.
J'ai essayé d'ajouter manuellement les chemins d'inclusion dans les paramètres de mon espace de travail:
#include "llvm/Support/CommandLine.h"
Ou dans un fichier c_cpp_properties.json
. Mais il recherche toujours les inclus au mauvais endroit. Par exemple. le include:
{ "C_Cpp.default.includePath": [ "../../", "../../clang/Frontend/", "../../clang/Tooling/", "../../llvm/Support/" ], "C_Cpp.default.browse.path": [ "../.." ] }
Il essaie de trouver dans
. Donc, apparemment, il lit quelque chose depuis command_config.json même s'il dit qu'il ne peut pas le trouver (tant qu'il est là), mais la mauvaise chose. Il ne devrait pas du tout ajouter llvm / include
.
4 Réponses :
1) Pointez '"compileCommands"' vers 'compile_commands.json'
2) Vous pouvez ajouter **, par exemple: la double étoile ../../**
le rend récursif
3) Vous pouvez utiliser certaines variables comme $ {workspaceRoot}
au lieu d'utiliser un chemin relatif dans vos chemins d'inclusion
Salut pooya13, merci pour ces conseils. Je pense qu'ils améliorent la configuration. Je l'ai compris entre-temps (c'était MSVC qui échouait, ça marche avec clang). J'ai quand même accepté cette réponse, car c'est une aide supplémentaire.
Si quelqu'un d'autre a ce problème, je pourrais le résoudre en passant de l'achèvement MSVC à clang.
Avec clang, cela m'a donné des infobulles qui montraient en quoi les chemins étaient erronés.
Voyez ici comment définir le mode Intellisense et l'emplacement pour qu'ils sonnent: https://code.visualstudio.com/docs/languages/cpp p >
Il vous suffit peut-être d'activer l'extension cmake-tools a>, configurez correctement CMakeLists.txt
, puis exécutez cmake.
Normalement, tant qu'il n'y a pas d'erreur avec cmake, Intellisense devrait fonctionner correctement.
Vous devez installer l'extension cmake-tool (ms-vscode.cmake-tools) et ajouter la configuration suivante à votre c_cpp_properties.json
:
{ "configurations": [ { "compileCommands": "${workspaceFolder}/_build/compile_commands.json", "configurationProvider": "ms-vscode.cmake-tools" } ], "version": 4 }
C'est travaille pour moi