一开始遇到该问题疯狂 baidu、bing,相关的 blog 寥寥无几,而且是差不多十年前的 blog。
主要原因
Source Insight 默认不包含 C 库文件、keil 标准库,导致编辑代码时找不到 C 库的相关宏、变量类型、函数等。例如,C 的 变量类型 int、char 等关键字:
解决办法
知道原因后那就好办了,只要把需要的库添加到 SI 即可。SI 添加外部库方法:
1. 在 menu 中,选择 Options -> Preferences
2. 选择 Symbol Lookups -> Import Symbols for All Projects
3. 选择 Add -> Import from an INCLUDE path
4. 然后选择第一个
5. 关键步骤。国内全网几乎没有一篇解决该问题的 blog,现将详细剖析该步骤。
SI 能 import 的外部库,是依赖于环境变量中名为 include 的系统变量,上图列出的路径都是 include 的变量值,所以修改 include 的变量值为需要使用的库路径即可。
一开始笔者的 include 变量值为 VSCode 的 mingw64 编译器下的 include 路径,但是该路径下没有 C 的库文件,所以 import 进 SI 后依旧无法识别 int、char 等关键字。
6. 修改 / 新建环境变量 include 的值
该变量的路径每个人都不一样,最主要是设置为你要 import 的 C 库文件或 keil 的标准库文件即可。
若没有该变量,则创建一个 include,变量值为C 库文件或 keil 的标准库路的路径。
若要同时配置多个库路径,则在变量值的第一个参数后输入英文的 ; ,后接第二个库路径即可。
修改 / 新建完成后,重复步骤 5,到 SI 进行 import 外部库,然后输入 ui 会含 uint16_t 的代码提示: