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

#### 错误信息

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


#### 问题介绍

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

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

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


#### 解决方案

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

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