一·簡介
本文介紹了ESP32系列在使用VSCODE+ESP-IDF v4.3下,波浪線警告問題的根因和解決辦法。 首先介紹了ESP-IDF 與VSCODE的關系,之后介紹了c_cpp_properties.json文件的作用以及配置方法。
二·正文
1.ESP-IDF與VSCODE
目前兩種開發ESP32的方式是arduino中安裝esp32的支持包,第二種就是使用ESP-IDF開發。第一種方法比較簡單容易上手,但是不是使用的純C,而且較低版本的arduino版本也不支持函數定義查看等騷操作。筆者在使用api時候總是願意進去看一看他的實現方式。或者再者說一些聯想輸入等操作也不支持,這就沒辦法偷懶(逃。。。)而ESP-IDF是樂鑫開發的SDK包及配套的軟件。但是缺點是使用命令行操作,很多小伙伴不適應,並且確實每次寫很麻煩。所以又推出了VSCODE的一個官方插件如下圖 :
注意:該插件只是一個接口,實際上無論是你在git上獲取ESO-IDF的安裝包還是提前下載好ESP-IDF的離線安裝包在這里導入。你在寫代碼,調用編譯的時候,還是在使用ESP-IDF那個軟件
VSCODE本體只是一個代碼編輯器!不是編譯器!他的萬能是通過添加各種插件實現的!
2.問題現象
這種波浪線就是你的VSCODE找不到對應的文件了。具體的波浪線顏色還有黃色和藍色。紅色是最嚴重的,他代表直接找不到對應的頭文件,無法完成編譯。而黃色只是警告你一些聯想和查看函數定義等功能不可使用。
實際控制整個工程(VSCODE中稱作工作區)的有兩部分設置:c_cpp_properties.json文件和【左側圖標欄】-【拓展】-【Espressif-IDF】-【右鍵】-【拓展設置】-如下兩項
3.路徑設置
在你明確的知道自己的路徑情況下,你可以選擇絕對路徑。但是這個工程可能在別的電腦上就會出問題。而如果采用第一列的方式,他就會去調用你win系統的IDF_PATH環境變量。注意他調用的不是第二個哦!筆者的問題就是這里調用了一個不存在的環境變量,結果就找不到結果了。修改方式所以是多樣的。你可以在這里設置絕對路徑,或者你在這里設置調用系統環境變量。然后去添加一個合適的環境變量的路徑值。
如果你不知道如何設置系統的環境變量,請自行百度:)
另外這些如果你都沒做,還有一個地方可以進行修改!就是c_cpp_properties.json文件!以我的文件舉例
他首先會在你剛才設置的拓展中路徑也就是工作區路徑下尋找,此外也會在本機設置的環境變量所指的路徑下尋找。不過上圖寫的有一些臃余,其實指向的也是一個地方。
你設置好各項路徑后保存一下,關閉VSCODE再次進入,就會正常了。