Как исправить intellisense «Определение символа не может быть найдено» в WSL - PullRequest
0 голосов
/ 05 февраля 2019

Я создаю решение в Visual Studio 2017, где мы выполняем кросс-компиляцию на WSL для цели ARM64.

У меня есть все мои пути включения, и компиляция, похоже, работает для этого конкретного файла.Заголовки, о которых идет речь, находятся на диске W: \, который является файловой системой WSL

. В верхней части файла в строке #include я могу щелкнуть по заголовку, о котором идет речь (), и щелкнуть правой кнопкой мыши, чтобы открытьдокумент.Это открывает правильный заголовок, и мое определение в этом недавно открытом документе.Кажется, что Intellisense не работает правильно с этим файлом, так как ни одно из перечислений или определений, кажется, не выделено правильно.

Но если бы я перешел к использованию определения в моем файле .c и попыталсяперейти к определению, я получаю «Определение для символа 'V4L2_PIX_FMT_HEVC' не может быть найдено"

При перемещении соответствующего заголовка на диск C: \ и изменении путей включения на соответствующий новый путь Intellisenseкажется, что распознает определение и «перейти к определению» работает правильно

#include <linux/videodev2.h> //Open document works
#include <linux/v4l2-controls.h> //Open document works

...
case UDP_VIDEO_PROTOCOL_MPEG2:
    codec = V4L2_PIX_FMT_MPEG2; //Go to definition does not work
    break;
case UDP_VIDEO_PROTOCOL_H265:
    codec = V4L2_PIX_FMT_HEVC; //Go to definition does not work

1 Ответ

0 голосов
/ 07 февраля 2019

Похоже, проблема связана с тем, что файлы, создаваемые в WSL, не работают с Intellisense.

https://developercommunity.visualstudio.com/content/problem/259166/intellisense-not-working-for-files-created-under-w.html

.был в состоянии проверить еще.Нелегко переключить мое рабочее место на предварительную версию Visual Studio только для того, чтобы решить эту проблему.

...