Вопрос по xcode, gcc, c++, c++11 – Опция «-std = gnu ++ 0x» для MacOS

4

Я пытаюсь скомпилировать проект CMake, который использует

set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wall -std=gnu++0x")

в файле CMakeLists.txt под MacOS X Lion. Я установил XCode 4.2.1. но компилятор терпит неудачу с этим:

cd something/src/lib && /usr/bin/c++   -Dlib_ginacra_EXPORTS -Wall -std=gnu++0x -fPIC   -o CMakeFiles/lib_ginacra.dir/utilities.cpp.o -c something/src/lib/utilities.cpp
cc1plus: error: unrecognized command line option "-std=gnu++0x"

Вариант компилятора:

c++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Ты пробовалclang? Пытатьсяexport CC=clang а такжеexport CXX=clang++ перед запускомcmake. trojanfoe
Спасибо! Каков предпочтительный (элегантный) способ сделать это с MacOS X Lion? Joachim
Вам потребуется более новая версия GCC. (gcc.gnu.org/projects/cxx0x.html) Mat
@trojanfoe То же, что и раньше. Joachim

Ваш Ответ

3   ответа
0

Скачать и установитьMacPorts-2.2.1-10.7-Lion.pkg MacPorts     установочный пакет отВот

в терминале найдите новые версии GCC:

$  port search --name --glob 'gcc*' 

установить более новую версию (я пошел с gcc5)

$  sudo port install gcc5

получить имя вашей новой версии и установить его по умолчанию

$ port select --list gcc

Available versions for gcc:
    llvm-gcc42
    mp-gcc5
    none (active)

$ sudo port select --set gcc mp-gcc5

откройте новый терминал и подтвердите, что вы обновлены:

$ c++ --version
c++ (MacPorts gcc5 5.2.0_0) 5.2.0
-1

Большинство из вас получают эту ошибку"cc1plus: error: unrecognized command line option -std=gnu++0x" при установке расширения nodejs, которое требует компиляции C ++ сnode-gyp. So how to solve this error so here is the solution. Basically you get these errors because of Nodejs different version as many node libraries requires C or C++ compilation while installing. So Nodejs older version uses python 2.7 с & # xA0;gcc компилятор ниже версии 4.2, но Nodejs & # xA0; более новая версия используетgcc44 компилятор, поэтому вы получаете ошибку выше при установке любой библиотеки nodejs.

Поэтому вам нужно понизить версию nodejs и node-gyp и указать версию python, если в вашей системе установлено несколько версий python, и вы больше не будете получать ошибку выше.

Нажмите здесь, чтобы увидеть полный учебник

7

GCC 4.2 старый, но Apple не поставляет более новую версию.

Вы можете либо установить современный GCC откуда-то, например, Mac Ports (что, вероятно, проще и быстрее), либо собрать его самостоятельно, следуя инструкциям наhttp://gcc.gnu.org/wiki/InstallingGCC

Или вы могли бы обновить до последней версии Xcode?
Последний Xcode не поставляется с любой более новой версией gcc. Я думаю, что это все еще llvm-gcc-4.2.
brew tap homebrew/versions && brew install gcc48

Похожие вопросы