"unknown type name 'decltype'": 在 mac 上安装 pyicu 失败,出现 gcc 错误
"unknown type name 'decltype'": Installing pyicu on mac failed, with gcc error
我 运行 以下命令(因为我的 mac 上同时有 python2 和 python3):
$ CFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib sudo python3 -m pip install pyicu
错误信息如下:
正在安装收集的包:pyicu
运行 setup.py 为 pyicu 安装...错误
命令 /anaconda3/bin/python3 -u -c "import setuptools, tokenize;file='/private/tmp/pip-build-l71tm0m4/pyicu/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-7298jccr-record/install-record.txt --single-version-externally-managed --compile:
的完整输出
Building PyICU 2.0.3 for ICU 58.2
Adding CXXFLAGS="-I/anaconda3/include" from /anaconda3/bin/icu-config
Adding LDFLAGS="-Wl,-rpath,/anaconda3/lib -L/anaconda3/lib -licui18n -licuuc -licudata" from /anaconda3/bin/icu-config
running install
running build
running build_py
creating build
creating build/lib.macosx-10.7-x86_64-3.6
copying PyICU.py -> build/lib.macosx-10.7-x86_64-3.6
creating build/lib.macosx-10.7-x86_64-3.6/icu
copying icu/__init__.py -> build/lib.macosx-10.7-x86_64-3.6/icu
running build_ext
building '_icu' extension
creating build/temp.macosx-10.7-x86_64-3.6
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/anaconda3/include -arch x86_64 -I/anaconda3/include -arch x86_64 -I/anaconda3/include/python3.6m -c _icu.cpp -o build/temp.macosx-10.7-x86_64-3.6/_icu.o -DPYICU_VER="2.0.3" -I/anaconda3/include
In file included from _icu.cpp:27:
./common.h:38:13: error: unknown type name 'decltype'
typedef decltype(nullptr) nullptr_t;
^
./common.h:38:30: error: expected ';' after top level declarator
typedef decltype(nullptr) nullptr_t;
^
;
2 errors generated.
error: command 'gcc' failed with exit status 1
----------------------------------------
命令“/anaconda3/bin/python3 -u -c "import setuptools, tokenize;file='/private/tmp/pip-build-l71tm0m4/pyicu/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-7298jccr-record/install-record.txt --single-version-externally-managed --compile”失败,错误代码为 1在 /private/tmp/pip-build-l71tm0m4/pyicu/
根据@n.m.,-std=c++11
需要添加到CFLAGS.
我 运行 以下命令(因为我的 mac 上同时有 python2 和 python3):
$ CFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib sudo python3 -m pip install pyicu
错误信息如下:
正在安装收集的包:pyicu 运行 setup.py 为 pyicu 安装...错误 命令 /anaconda3/bin/python3 -u -c "import setuptools, tokenize;file='/private/tmp/pip-build-l71tm0m4/pyicu/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-7298jccr-record/install-record.txt --single-version-externally-managed --compile:
的完整输出Building PyICU 2.0.3 for ICU 58.2
Adding CXXFLAGS="-I/anaconda3/include" from /anaconda3/bin/icu-config
Adding LDFLAGS="-Wl,-rpath,/anaconda3/lib -L/anaconda3/lib -licui18n -licuuc -licudata" from /anaconda3/bin/icu-config
running install
running build
running build_py
creating build
creating build/lib.macosx-10.7-x86_64-3.6
copying PyICU.py -> build/lib.macosx-10.7-x86_64-3.6
creating build/lib.macosx-10.7-x86_64-3.6/icu
copying icu/__init__.py -> build/lib.macosx-10.7-x86_64-3.6/icu
running build_ext
building '_icu' extension
creating build/temp.macosx-10.7-x86_64-3.6
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/anaconda3/include -arch x86_64 -I/anaconda3/include -arch x86_64 -I/anaconda3/include/python3.6m -c _icu.cpp -o build/temp.macosx-10.7-x86_64-3.6/_icu.o -DPYICU_VER="2.0.3" -I/anaconda3/include
In file included from _icu.cpp:27:
./common.h:38:13: error: unknown type name 'decltype'
typedef decltype(nullptr) nullptr_t;
^
./common.h:38:30: error: expected ';' after top level declarator
typedef decltype(nullptr) nullptr_t;
^
;
2 errors generated.
error: command 'gcc' failed with exit status 1
----------------------------------------
命令“/anaconda3/bin/python3 -u -c "import setuptools, tokenize;file='/private/tmp/pip-build-l71tm0m4/pyicu/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-7298jccr-record/install-record.txt --single-version-externally-managed --compile”失败,错误代码为 1在 /private/tmp/pip-build-l71tm0m4/pyicu/
根据@n.m.,-std=c++11
需要添加到CFLAGS.