【问题标题】:How to fix intellisense 'A definition for the symbol could not be located' on WSL如何在 WSL 上修复智能感知“无法找到符号的定义”
【发布时间】:2019-06-29 18:02:06
【问题描述】:

我正在 Visual Studio 2017 中构建一个解决方案,我们在 WSL 上针对 ARM64 目标进行交叉编译。

我已经设置了所有的包含路径,并且编译似乎适用于这个特定的文件。有问题的标头位于 WSL 文件系统的 W:\ 驱动器上

在文件顶部的#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

【问题讨论】:

    标签: c++ visual-studio include intellisense windows-subsystem-for-linux


    【解决方案1】:

    看起来问题源于在 WSL 中创建的文件无法与 Intellisense 一起使用

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

    显然,在撰写本文时,该问题据称已在 Visual Studio 2019 中修复,但我尚未能够进行测试。为了解决这个问题,将我的工作场所切换到 Visual Studio 的预览版并不容易。

    【讨论】:

      猜你喜欢
      • 2011-12-31
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2018-03-07
      相关资源
      最近更新 更多