Использование boost из XCODE 4.6.1 — каковы правильные настройки сборки?

Я скачал boost 1.53 и распаковал его в Users/user/Desktop/boost_1_53_0. Я успешно собрал boost как статические библиотеки, следуя инструкциям по адресу: http://libcinder.org/docs/v0.8.5/_cinder_boost.html

Я изменил «Настройки сборки» «Пути поиска заголовков» XCODE на /Users/user/Desktop/boost_1_53_0, а также «Пути поиска библиотеки» на Users/user/Desktop/boost_1_53_0/stage/lib

Затем я строю и получаю ошибки:

Первая ошибка, которую я получаю, это «has_binary_operator.hpp». Проблема синтаксического анализа Ожидаемое имя члена или ';' после спецификаторов объявления в строке:

шаблон ‹ имя типа слева, имя типа справа >

структура operator_exists {

...

У кого-нибудь есть советы, какие должны быть настройки сборки? Проект содержит некоторые файлы, которые являются какао/объективными C (.m), а другие — C++(.mm) с использованием boost. Я совершенно новичок в попытках использовать boost под OSX Mountain Lion и XCODE 4.6.1.


person bhartsb    schedule 27.05.2013    source источник
comment
Здесь та же ошибка... boost 1.55, Xcode 5, все компиляторы C++11 + библиотеки в проекте.   -  person Jay    schedule 28.01.2014


Ответы (4)


Я немного опоздал с этим, но если у кого-то еще есть эта проблема...

У меня была эта проблема с ускорением в проектах, использующих Objective C. У меня возникали проблемы с разбором и семантикой в ​​has_binary_operator.hpp и lexical_cast.hpp.

Быстрое исправление заключалось в том, чтобы вставить «#undef check» перед включением заголовков boost в исходные файлы Objective C, поскольку казалось бы, что «check» является зарезервированным словом в Objective C.

person Jeff Gregorio    schedule 02.10.2014
comment
это исправило эту проблему для меня! - person Bersaelor; 07.10.2014

Вы можете убедиться, что установлен тип компилятора GNU98 или что-то в этом роде, компилятор по умолчанию XCODE4 может быть совместим с C++ 11.

person fatihk    schedule 27.05.2013

Я использую boost от XCODE и согласен с fatih_k. У меня все настройки языка c и c++ установлены на GNU99 и GNU++98. У меня также есть опция «скомпилировать исходники как», установленная на «В соответствии с типом файла».

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

Я еще не пробовал варианты С++ 11 с повышением.

person Arno Duvenhage    schedule 27.05.2013
comment
Если я изменю компилятор на LLVM GCC 4.2, я получу меньше ошибок. Они все еще находятся в has_binary_operator.hpp: Ожидается * до * Ожидается неквалифицированный -id перед 'do' - person bhartsb; 27.05.2013
comment
Я использовал macports для повышения. Где ты взял свое? - person Arno Duvenhage; 31.05.2013

Компилятором Xcode 4.x по умолчанию является apple llvm, и по умолчанию он использует libc++. Вы можете изменить настройки в Xcode

Чтобы изменить stdlib как libc++

а. Выберите цель из Xcode и перейдите на вкладку BuildSettings.

б. Перейти к компилятору Apple LLVM 4.2 - параметр языка

Измените параметр как libstd из libc++

Чтобы изменить компилятор

а. Выберите цель из Xcode и перейдите на вкладку BuildSettings.

б. Вниз Варианты сборки

Измените параметр C/C++/Objective C. Параметр по умолчанию будет «Компилятор Apple LLVM 4.2». Измените его на g++ 4.2.

person balumohan    schedule 28.05.2013