1

У меня возникли проблемы, пытаясь скомпилировать этот код:компилятор не компиляции следующей строки (C++)

int *array_aleatorio = new int[8]{0, 1, 2, 3, 4, 5, 6, 7}; 

Это ошибка, которая проявляется:

main.cpp:315:38: error: expected ';' at end of declaration
int *array_aleatorio = new int[8]{0, 1, 2, 3, 4, 5, 6, 7};

Один из моих товарищей по команде сказал меня это может быть потому, что я не использую правильный компилятор. Он использует C++11, и он работает. Я попытался установить его без каких-либо успехов.

Я использую OSX 10.6.8 и Netbeans 7.3

Я использую clang++. enter image description here

Я попытался это this решение, добавив -std=c++11 -stdlib=libc++ -Weverything линию к компиляции свойств проекта, но это не работает: enter image description here

Это ошибка, которая появляется, когда я пытаюсь выполнить его добавив строки выше.

clang++ -std=c++11 -stdlib=libc++ -Weverything -c -g -std=c++11
-stdlib=libc++ -Weverything -MMD -MP -MF build/Debug/GNU-MacOSX/main.o.d -o build/Debug/GNU-MacOSX/main.o
main.cpp clang: warning: argument unused during compilation:
'-std=c++11' clang: warning: argument unused during compilation:
'-stdlib=libc++' warning: unknown warning option '-Weverything'
[-Wunknown-warning-option] warning: unknown warning option
'-Weverything' [-Wunknown-warning-option] error: invalid value 'c++11'
in '-std=c++11'

Может ли кто-нибудь сказать мне, как установить C++ 11 в OSX? Заранее спасибо.

+1

Clang поддерживает C++ 11 просто отлично. Какая у вас версия? –

+1

'int array_aleatorio [] = {0, 1, 2, 3, 4, 5, 6, 7};' – fvu

+0

Согласен. 'new' выглядит совершенно бессмысленным здесь. – chris

ответ

5

Ваш Xcode является способ устаревший. Xcode 3.2.6 был выпущен в 2011 и включает в себя:

Apple clang version 1.7 (tags/Apple/clang-77) (based on LLVM 2.9svn) 

на основе даты выпуска, это на самом деле не удивительно, что он не поддерживает C++ 11.

Вы хотите получить Xcode 4.6, который включает в себя:

Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) 

Вам может понадобиться обновить ОС, тоже - 10.6.8 это пару лет, тоже.

+0

Я не могу обновить Xcode, потому что, как вы сказали, ему нужна более новая версия OSX, и по нескольким причинам это невозможно сделать. –

+1

Невозможно? Зачем? В любом случае, вы можете получить источники clang и построить свои собственные, если вы действительно застряли. –

+0

Из-за некоторых HD-переделов, если я хочу обновить OSX, я должен сделать это путем чистой установки, а не для обновления OSX. И для этого мне нужно сделать резервную копию всех данных, и у меня нет времени на это. Я постараюсь сделать то, что вы говорите. –

1

Последняя поддерживаемая версия clang on snow leopard не совместима с C++ 11, но вы можете установить macports (http://www.macports.org/install.php), а с помощью консоли вы можете установить более новую версию clang , "sudo port install clang-3.2" например.

папка, в которой установлен лязг может быть найден с «WhereIs лязг-3,2»

Смежные вопросы