2
votes

VSCode C / C ++ Intellisense ne fonctionne pas avec le projet CMake

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:

/ clang-tools-extra / mytool p >

Maintenant, l'extension C / C ++ essaie de lire le fichier compile_config.json et me dit que /build/compile_config.json 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 /llvm/include/llvm/Support/CommandLine.h . 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 .


0 commentaires

4 Réponses :


2
votes

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


1 commentaires

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.



0
votes

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


0 commentaires


0
votes

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


0 commentaires