我正在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
答案 0 :(得分:0)
该问题似乎源于在WSL中创建的文件无法与Intellisense一起使用
显然在撰写本文时,该问题据说已在Visual Studio 2019中修复,但我尚未能够进行测试。仅为了解决问题,将工作场所切换到Visual Studio的预览版并不容易。