# 如何自排查_Bool类型没有找到的编译问题

**问题现象**

构建HAP工程时，编译工具报错："error: unknown type name '_Bool'"，找不到_Bool类型错误，如下所示：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/78/v3/JzkZdI7GSWyGb8SD6CE0dw/zh-cn_image_0000002624475910.png?HW-CC-KV=V1&HW-CC-Date=20260929T074333Z&HW-CC-Expire=31536000000&HW-CC-Sign=AD2EF97C205A06777B3A066F6284D7F0065C7028B8899A31CF65F65956F63093 "点击放大")

**可能原因**

JSVM-API基于C99标准的C-API，在C++工程中使用时需注意兼容性。

当前版本SDK提供的C++编译工具链clang++的默认配置为-std=gnu++14。当指定-std=c++xx时，会覆盖默认配置，Clang会使用strict ANSI的编译宏，对应C90标准，不包含GNU C扩展，因此不支持C99标准引入的_Bool。而-std=gnu++xx系列选项会启用GNU C扩展支持，不会产生编译错误。

**解决措施**

检查构建选项中是否添加了-std=c++xx系列的选项（例如11、14、17等）。

如果存在，那么有以下三种方案可以解决这个问题：

1. 如果使用的C++版本为C++14或更低，可以移除-std=c++xx系列的选项。DevEco Studio提供的编译工具链默认配置为-std=gnu++14。
2. 如果有限定C++版本的需求，建议将 -std=c++xx 修改为 -std=gnu++xx。
3. 在 CMakeLists.txt 中添加选项 -U__STRICT_ANSI__ 也可以解决这个问题。

