---
title: Clang预处理器结果与GCC存在较大差异
description: "- 格式错误：syntax error, unexpected IDENT"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/bisheng/hist-bisheng/kunpengbisheng_06_0044.html
sourcePath: /source/zh/kunpengdevkithistory/bisheng/hist-bisheng/kunpengbisheng_06_0044.html
indexId: 3b3079ee06f5a87434dee6080f883476bff7e655bcbe0196a5ece6dc52aa383080
---
# Clang预处理器结果与GCC存在较大差异

#### 错误信息

- 格式错误：syntax error, unexpected IDENT
- 找不到头文件


#### 问题介绍

Clang的预处理器实现和GCC有比较大的不同，例如：

- Clang会保留每行开头的空白符；
- Clang会保留引入的头文件的绝对路径；
- 其它的不一一列举。

有一些程序会使用预处理器来处理源码文件，但是因为Clang和GCC的预处理器的行为有一些不同，可能会因此导致一些问题。


#### 解决方案

修改源码使得其能被Clang的预处理器正确处理。例如：

- 删除代码行前的空白符；
- 保证include的文件能被找到。
