Clang预处理器结果与GCC存在较大差异
错误信息
- 格式错误:syntax error, unexpected IDENT
- 找不到头文件
问题介绍
Clang的预处理器实现和GCC有比较大的不同,例如:
- Clang会保留每行开头的空白符;
- Clang会保留引入的头文件的绝对路径;
- 其它的不一一列举。
有一些程序会使用预处理器来处理源码文件,但是因为Clang和GCC的预处理器的行为有一些不同,可能会因此导致一些问题。
解决方案
修改源码使得其能被Clang的预处理器正确处理。例如:
- 删除代码行前的空白符;
- 保证include的文件能被找到。
父主题: 其它类兼容问题