在学习正点原子的ESP32S3开发板的touch例程的时候,发现程序可以正产编译和运行但是一直提示找不到C语言的系统库函数。尝试了很多办法,还有什么copilot的方法。都没啥用。虽然不影响“能跑就行”,但是强迫症看着这个波浪线就很不舒服啊喂。

还提示你去修改C/C++这个插件里面的东西,都没太大用。
然后通过和乐鑫的标准例程对比,发现正点原子这个例程的c_cpp_properties.json里面缺少编译器路径和编译命令

把下面的代码添加进去就解决了报错,这个根据espidf版本的不同可能会有所改变,大家可以根据自己的idf来改。如果找不到,可以用ESP-IDF插件创建一个标准例程或者blink啥的对比一下两段代码里的c_cpp_properties.json即可。
//如果提示找不到c系统库函数,是因为没有添加下面的编译器路径和编译命令
"compilerPath": "${config:idf.toolsPathWin}\\tools\\xtensa-esp32s3-elf\\esp-12.2.0_20230208\\xtensa-esp32s3-elf\\bin\\xtensa-esp32s3-elf-gcc.exe",
"compileCommands": "${config:idf.buildPath}/compile_commands.json",
修改之后的完整c_cpp_properties.json代码:
{
"configurations": [
{
"name": "ESP-IDF",
//如果提示找不到c系统库函数,是因为没有添加下面的编译器路径和编译命令
"compilerPath": "${config:idf.toolsPathWin}\\tools\\xtensa-esp32s3-elf\\esp-12.2.0_20230208\\xtensa-esp32s3-elf\\bin\\xtensa-esp32s3-elf-gcc.exe",
"compileCommands": "${config:idf.buildPath}/compile_commands.json",
"includePath": [
"${config:idf.espIdfPath}/components/**",
"${config:idf.espIdfPathWin}/components/**",
"${config:idf.espAdfPath}/components/**",
"${config:idf.espAdfPathWin}/components/**",
"${config:idf.espAdfPathWin}/components/**",
"${workspaceFolder}/**",
"${default}"
],
"browse": {
"path": [
"${config:idf.espIdfPath}/components",
"${config:idf.espIdfPathWin}/components",
"${config:idf.espAdfPath}/components/**",
"${config:idf.espAdfPathWin}/components/**",
"${workspaceFolder}",
"${default}"
],
"limitSymbolsToIncludedHeaders": false
},
"configurationProvider": "ms-vscode.cmake-tools" /* 解决 browse.path 中未找到包含文件 */
}
],
"version": 4
}
修改之后记得保存,关闭vscode,重启vscode。所有库函数就可以识别了。我这里还有警告是因为没装ADF,暂时没用到ADF所以没装。






