我目前正在尝试在Mac上的virtualenv中安装PySift。但是,Zstandard库在安装时会导致错误。
In file included from /usr/include/Availability.h:236:0,
from /usr/include/stdlib.h:61,
from zstd/lib/compress/fse_compress.c:38:
/usr/include/AvailabilityInternal.h:33:18: error: missing binary operator before token "("
#if __has_include(<AvailabilityInternalPrivate.h>)
^
In file included from /usr/include/stdlib.h:61:0,
from zstd/lib/compress/fse_compress.c:38:
/usr/include/Availability.h:497:18: error: missing binary operator before token "("
#if __has_include(<AvailabilityProhibitedInternal.h>)
^
error: command 'gcc' failed with exit status 1
我在StackOverflow上看到的大多数解决方案通常都建议运行xcode-select --install
,但没有用。或者,this post建议使用以下命令
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
该命令将打开一个窗口,可让您安装缺少的MacOS SDK。但是,它仍然没有起作用。在那之后,我意识到我还没有将Xcode更新到最新版本。但是即使更新后,该错误仍然会出现。最后,我尝试使用brew
,就像在this post中一样,并进行了一些更新,以防万一某些损坏的软件阻止安装完成。
最后,它仍然不起作用。我想知道是否有人可以指出导致错误的我所缺少的东西?多谢
编辑:
我检查了this post,但没有找到答案,因为我专门试图找出为什么__has_include
之前的(
导致错误。
答案 0 :(得分:1)
您从预处理器中收到语法错误,因为b / c无法将__has_include
识别为类似于函数的有效宏。那是因为它是c ++ 17特定的指令。
您可以通过从文件中删除该行(和匹配的#endif)来解决。如果您收到有关缺少的包含内容的编译器错误,也请删除#include行。