网络搜索居然没有很好的答案,都是乱写的。
正常情况我们会有一个sdk目录,一个app目录,其中sdk是厂商的,不会变,但是app是开发的,随便变。
所以一般vscode打开sdk目录,再把app拖进来,这时候就是工作区。但是这时候就会发现app里找不到sdk的头文件。
比如esp32的:
如上图,idf就是sdk目录,在h盘,station就是在我的文档(c盘)下面的。这时候就会发现station下找不到头文件。
解决方法是在station下新建 .vscode目录/c_cpp_properties.json文件。
然后把sdk目录加进去:
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "H:/Espressif/frameworks/esp-idf-v5.4.1/**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "10.0.22621.0", "compilerPath": "cl.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-msvc-x64" } ], "version": 4 }
其中最重要的就是:"H:/Espressif/frameworks/esp-idf-v5.4.1/**"
重新打开工作区就有了。
有的网友说直接要"${workspaceFolder}/**"就可以了,表示工作区下的所有文件,实际也不行。因为你这个工作区目录不一定包含了app目录。最好的就是直接加上sdk绝对目录。