无法识别的命令行选项'-stdlib = libc ++'gcc(Homebrew gcc 5.3.0)5.3.0

时间:2016-01-07 12:03:42

标签: c++ gcc homebrew std osx-elcapitan

我运行Mac OSX El Capitan,我已经通过Homebrew gcc 5.3.0安装。

我想安装pyopencl(但据我所知并不重要)并且在运行以下命令时:

  

gcc -fno-strict-aliasing -fwrapv -Wall -O3 -DNDEBUG -DPYGPU_PACKAGE = pyopencl -DPYGPU_PYOPENCL = 1 -Isrc / c_wrapper / -I / Users / earendilllock / anaconda / include / python2.7 -c build / temp .macosx-10.5-x86_64-2.7 / pyopencl._cffi.cpp -o build / temp.macosx-10.5-x86_64-2.7 / build / temp.macosx-10.5-x86_64-2.7 / pyopencl._cffi.o -std = c + + 0x -stdlib = libc ++ -mmacosx-version-min = 10.7 -arch i386 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

我收到了以下错误:

gcc: error: unrecognized command line option '-stdlib=libc++'
error: command 'gcc' failed with exit status 1
make: *** [all] Error 1

我无法通过Google找到解决该问题的解决方案,但我希望它存在。

2 个答案:

答案 0 :(得分:5)

正如错误消息所示,gcc编译器没有-stdlib这样的命令行选项。 LLVM clang编译器可以。 这是因为clang为您提供了连接LLVM标准C ++库(libc++)或者链接的选择 GNU标准C ++库(libstdc++),而gcc仅支持libstdc++

删除选项-stdlib=libc++。您也可以将-std=c++0x替换为-std=c++11, 因为前者表示对2011 C ++ 11标准的实验支持,适用于gcc版本 4.3到4.6。

答案 1 :(得分:0)

安装clang / clang ++编译器并在构建步骤中使用它可能也很有用(因为你可能会遇到与其他Python包有关的gcc问题):

python configure.py
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
python setup.py build
make -j 4
python setup.py install
cd ../
python -c "import pyopencl"