Python Pynini lib 安装期间出错:“致命错误:未找到‘ios’文件”

Python Pynini lib 安装期间出错:“致命错误:未找到‘ios’文件”

我运行命令 '''python3 setup.py install''' 和 '''python3 setup.py install --prefix=/usr/local''' 以便通过 CLI 安装 Python 包 Pynini,但出现了以下无法解释的错误,我不确定这是什么原因造成的:

'''[...] 
running build_ext
building 'pywrapfst' extension gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Library/anaconda3/include -arch x86_64 -I/Library/anaconda3/include -arch x86_64 -I/Library/anaconda3/include/python3.6m -c src/pywrapfst.cc -o build/temp.macosx-10.7-x86_64-3.6/src/pywrapfst.o -std=c++11 -Wno-unused-function -Wno-unused-local-typedefs -funsigned-char
warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
src/pywrapfst.cc:612:10: fatal error: 'ios' file not found
#include "ios"
         ^~~~~
1 warning and 1 error generated.
error: command 'gcc' failed with exit status 1'''  

似乎有两个错误(iOS 和 gcc 相关错误)。我该如何解决它们?

任何帮助,将不胜感激 !

答案1

尝试运行CFLAGS='-stdlib=libc++' python3 setup.py install

你能简单解释一下这个命令的作用吗?

在 Mac OS X 上,gcc有时g++实际上是, 不是 海湾合作委员会.CFLAGS='-stdlib=libc++'是(据我所知)特定于 Clang 的编译器标志,指示 Clang 应该libc++在编译期间使用(作为 Pynini 模块安装的一部分完成)。

至于为什么这样做有效,似乎是stdlibc++找不到的头文件。因此,在这种情况下,显然有必要告诉 Clanglibc++改用

warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the command line to use the libc++ standard library instead

另请注意,-std=c++11已指定并且libc++C++11 之后的实现C++ 标准库和 Clang 的制作者是同一个团队。


相关内容