Опция «-std = gnu ++ 0x» для MacOS

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

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

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

<code>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"
</code>

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

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

Ответы на вопрос(3)

Скачать и установить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

Большинство из вас получают эту ошибку"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, и вы больше не будете получать ошибку выше.

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

Решение Вопроса

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

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

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

Ваш ответ на вопрос