Intellisense не показывает синтаксические ошибки для проекта cmake в Visual Studio 2019 - PullRequest
0 голосов
/ 21 сентября 2019

Я использую недавно установленную Visual Studio 2019 для проекта cmake.Intellisense для завершения кода (т.е. имена функций и констант) работает нормально.Тем не менее, в текстовом редакторе отсутствуют синтаксические ошибки, подчеркивающие красным цветом (т. Е. Пропущенная точка с запятой, неверный тип параметра, неопределенная переменная).

Я установил режим IntelliSense на windows-msvc-x64 в CMakeSettings.json и использовал ниндзя в качестве cmake по умолчаниюгенератор.

Как включить обнаружение синтаксических ошибок в реальном времени в проекте cmake?Возможно ли это вообще?

1 Ответ

1 голос
/ 23 сентября 2019

Как включить обнаружение синтаксических ошибок в реальном времени в проекте cmake?Возможно ли это вообще?

Проверьте, есть ли у вас совет No Configurations для xx.cpp, где Intellisense не поддерживается.

enter image description here

Для проектов Cmake в VS, когда вы создаете или добавляете новый файл xx.cpp в текущий проект, вам нужно определить исходный файл вCMakeLists.txt и затем восстановить Cmake cache. После этого Intellisense может поддерживать все функции для файла xx.cpp.

enter image description here

Обходной путь:

Так что для вашей проблемы, если вы создали новый файл Test.cpp в проекте, first , вы должны убедиться, что файл Test.cpp определен всначала CMakeLists.txt файл, затем переключитесь на целевое представление , чтобы проверить, находится ли файл Test.cpp ниже уровня ProjectName(executable).Если вы не можете найти Test.cpp на уровне ProjectName(executable), например:

enter image description here

Щелкните правой кнопкой мыши проект => создать кэш и, если онуспешно, вы найдете Test.cpp в ProjectName(executable).И только когда вы можете найти xx.cpp в ProjectName (исполняемый файл), весь код в xx.cpp может получить полную поддержку Intellisense (т. Е. Пропущена точка с запятой).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...