中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

不同编译器对built-in includes的实现不同

错误信息

error: typedef redefinition with different types ('__uint64_t' (aka 'unsigned long') vs 'UINT64' (aka 'unsigned long long')) 
error: unknown type name 'wchar_t'

问题介绍

某些头文件(例如“stdatomic.h、stdint.h”)是由编译器实现的,不同的编译器对于这些文件的实现存在差异,因此使用GCC头文件实现的程序,切换到Clang之后,用户自定义的代码可能会与Clang头文件发生冲突。

比如说重定义问题:在Clang的某些头文件中定义了一些在对应GCC的头文件中没有定义的变量,而用户在自己编写的或引入的其它库的头文件也定义了该变量,变量被重复定义,导致redefinition错误。

又或者:在GCC的built-in头文件中定义了一些变量,而Clang对应的头文件中没有定义该变量,用户在自己编写的代码中直接使用了该变量,结果就会导致unknown type的错误。

解决方案

建议修改源码。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词