【问题标题】:unrecognized command line option '-stdlib=libc++' gcc (Homebrew gcc 5.3.0) 5.3.0无法识别的命令行选项 '-stdlib=libc++' gcc (Homebrew gcc 5.3.0) 5.3.0
【发布时间】:2016-01-07 12:03:41
【问题描述】:

我运行 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 找到解决该问题的解决方案,但我希望它存在。

【问题讨论】:

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


    【解决方案1】:

    正如错误消息所说,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。

    【讨论】:

      【解决方案2】:

      安装 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"
      

      【讨论】:

        猜你喜欢
        • 2020-10-06
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-26
        • 2020-02-03
        • 2021-10-04
        相关资源
        最近更新 更多