错误:未知类型名称 '__darwin_wctype_t' typedef __darwin_wctype_t wctype_t 在 MacOS 上使用 Clang 编译
Posted
技术标签:
【中文标题】错误:未知类型名称 \'__darwin_wctype_t\' typedef __darwin_wctype_t wctype_t 在 MacOS 上使用 Clang 编译【英文标题】:error: unknown type name '__darwin_wctype_t' typedef __darwin_wctype_t wctype_t compiling on MacOS with Clang错误:未知类型名称 '__darwin_wctype_t' typedef __darwin_wctype_t wctype_t 在 MacOS 上使用 Clang 编译 【发布时间】:2020-05-01 17:10:22 【问题描述】:全新的项目完全没问题,但我发现了相当老的开源项目并想编译它。基本上,包含iostream
或algorythm
之类的标头时会出现错误。
我的环境如下所示:
-
MacOS 10.15.4
Clang 11.0.3
Cmake 3.16.5
这里安装了工具和头文件
/Library/Developer/CommandLineTools/usr/bin
项目使用 cotire 1.8.0
IDE - CLion
一般来说,项目由 30 多个子项目组成,有些是 C,有些是 C++。只有 C 中的那些可以被构建。
我一直在尝试很多东西:为 Cmake 设置目标版本,设置手动查找头文件的路径(在 Cmake 文件中)。重新安装开发者工具也无济于事。
请查看原始错误消息:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iostream:37:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/ios:214:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iosfwd:95:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/wchar.h:118:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/wchar.h:92:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/_wctype.h:42:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/__wctype.h:62:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/_types/_wctype_t.h:32:9: error: unknown type name '__darwin_wctype_t'
typedef __darwin_wctype_t wctype_t;
更新 1
我向前移动了一点,发现stdafx.h
甚至不能包含iostream
。所以我会检查所有包含路径。
【问题讨论】:
【参考方案1】:包含问题。项目有自己的_types.h
,系统中有一个。首先包含项目的变体,系统的变体被忽略。显然,这会导致这种神秘的信息。
这是根本原因。Clang 的文档说我需要使用-isysroot
来明确设置系统的头文件根目录,这将阻止首先匹配项目的头文件,但这对我不起作用。临时修改了项目的头文件名(types.h
),效果很好(没有下划线,不再被认为是系统头文件),同时我会尽量修复它。
【讨论】:
以上是关于错误:未知类型名称 '__darwin_wctype_t' typedef __darwin_wctype_t wctype_t 在 MacOS 上使用 Clang 编译的主要内容,如果未能解决你的问题,请参考以下文章
使用用于 C++ 代码的标头编译 C 代码时未知类型名称 char16_t
自定义输入类型的 Apollo 数组作为 Mutation 参数抛出“__typename”:未知字段错误
错误未知类型“webform__webform”使用 gatsby-drupal-webform & GraphQL
错误 C2893 无法专门化函数模板“未知类型 std::invoke(_Callable &&,_Types &&...)”
使用 OpenCV readNetFromTensorFlow 运行 Keras DNN 模型(UNet):错误:操作解码器_stage0_upsampling/Shape 中的未知层类型形状