Использование Boost на XCode 5 - Apple LLVM 5.0

Я рад, что NDA для XCode 5 закончилась, и я могу задать этот вопрос.

У меня возникла проблема создания Boost для XCode 5 теперь, когда есть только один компилятор LLVM 5.0

Я пробовал использовать Homebrew, используя -С++ 11, используя clang.... Я пробовал различные идеи и скрипты, но пока не работал.

Любая помощь будет оценена по достоинству. Благодаря

Ответ 1

Для создания статических бинарных файлов с 32/64 бит для boost 1.54.0, скомпилированных с clang/llvm, единственным компилятором для Xcode 5:

  • Загрузите tar-архив unix (не ZIP!), у которого есть завершение строки CR/LF и будет выглядеть)
  • Отпустите его.
  • cd для boost_1_54_0/
  • Run:

    ./bootstrap.sh toolset = clang

  • Run:

    ./b2 toolset = clang --without-mpi cxxflags = "- arch i386 -arch x86_64 -fvisibility = hidden -fvisibility-inlines-hidden -std = С++ 11 -stdlib = libС++ -ftemplate-depth = 512" linkflags = "- stdlib = libС++" link = статический этап

... который помещает выходные библиотеки в. /stage/lib

Затем переместите библиотеки, в которых вы хотите.

Это библиотеки релизов, которые должны быть все, что вам нужно.

Это для OSX. Вы можете изменить -arch и добавить другие параметры в cxxflags = для iOS.

Если вам нужен интерфейс передачи сообщений, удалите --without-mpi из команды b2.

==== Интересные факты:

  • Building boost кажется движущейся целью, поэтому эти инструкции будут как-то перерываться в будущей версии
  • Я пытался -Wno-xxxx отключить предупреждения в cxxflags =... но это не сработало
  • bjam и b2 - одно и то же, b2 - новое имя
  • clang как набор инструментов первого класса был добавлен где-то по пути, поэтому вы можете игнорировать любые инструкции в Интернете, чтобы изменить "user-config.jam", (Все, что вам нужно, похоже, может быть передано в командной строке b2 для этих одноразовых сборок.)