VSCode C / C ++ Intellisense не работает с проектом CMake - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь написать инструмент, использующий libTooling.Я настроил его так, чтобы он компилировался с примером из документации LLVM.Однако IntelliSense для C / C ++, похоже, не работает с проектами CMake.

Мой инструмент находится в:

<project>/clang-tools-extra/mytool

Теперь расширение C / C ++ пытается прочитатьcompile_config.json и сообщает, что <project>/build/compile_config.json не может быть найден, вместо этого используется includePath из c_cpp_properties.json.

Я попытался добавить пути включения вручную в настройках своего рабочего пространства:

{
    "C_Cpp.default.includePath": [
        "../../",
        "../../clang/Frontend/",
        "../../clang/Tooling/",
        "../../llvm/Support/"
    ],
    "C_Cpp.default.browse.path": [
        "../.."
    ]
}

Или в файл c_cpp_properties.json.Но он все еще ищет включения в неправильном месте.Например, включить:

#include "llvm/Support/CommandLine.h"

Он пытается найти в <project>/llvm/include/llvm/Support/CommandLine.h.Таким образом, очевидно, что он читает что-то из command_config.json, хотя и говорит, что не может найти его (пока он там есть), но это неправильно.Он не должен добавлять llvm/include вообще.

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Если у кого-то еще есть эта проблема, я мог бы решить ее, переключившись с завершения MSVC на clang.

С помощью clang он фактически дал мне всплывающие подсказки, которые показали, как неправильны пути.

См.здесь, как установить режим Intellisense и местоположение для лязга: https://code.visualstudio.com/docs/languages/cpp

0 голосов
/ 09 марта 2019

1) Укажите «compileCommands» на «compile_commands.json»
2) Возможно, вы захотите добавить **, например: ../../** двойная звезда делает его рекурсивным
3) Вы можете использовать некоторые переменныекак ${workspaceRoot} вместо использования относительного пути в ваших путях включения

...