Как собрать boost 1.45 универсальных бинарных файлов? - PullRequest
6 голосов
/ 21 января 2011

Как собрать boost 1.45 универсальных бинарных файлов?на леопарда / снежного барса?

Ответы [ 3 ]

11 голосов
/ 04 февраля 2011

Для создания 4-х сторонних универсальных надстроечных статических двоичных файлов на OSX 10.6 я делаю следующее:

  1. Скачать буст с сайта буста.

  2. Извлеките архив и cd в папку boost_x_xx_x (где x_xx_x - используемая вами версия наддува).

  3. Пробег:

    ./bootstrap.sh, а затем

    # The name of the Boost.Jam program changed from "bjam" to "b2" in Boost 1.47.0

    # Replace "b2" with "bjam" if you are compiling a version <= 1.46.1

    ./b2 macosx-version=10.6 macosx-version-min=10.4 architecture=combined threading=multi link=static address-model=32_64

Это скомпилирует все, кроме Boost.MPI (для которого требуется опция --with-mpi). Продукты сборки помещаются в ./stage


ОБНОВЛЕНИЕ: Если вы установили XCode 4, то необходимо выполнить дополнительный шаг. XCode 4 не поставляется с компиляторами или библиотеками, способными нацеливаться на PowerPC. К сожалению, компиляторы, поставляемые с XCode 4, становятся компиляторами по умолчанию, используемыми Boost. Чтобы принудительно использовать компиляторы, которые поставляются с XCode 3, вы должны выполнить дополнительный шаг. Обратите внимание, что вы должны установить XCode 3, если он отсутствует в вашей системе.

После запуска ./bootstrap.sh и перед запуском b2 откройте:

./tools/build/v2/user-config.jam

Добавить следующую строку в этот файл. Это инструктирует boost использовать g ++ - 4.2 из XCode 3:

using darwin : : /Developer-old/usr/bin/g++-4.2 ;
1 голос
/ 21 января 2011

Какие библиотеки вы пытаетесь построить? Здесь сказано (http://www.boost.org/doc/libs/1_45_0/more/getting_started/unix-variants.html) что:

Большинство библиотек Boost доступны только для заголовков: они состоят исключительно из заголовочных файлов содержащие шаблоны и встроенные функции и не требуют раздельно скомпилированные библиотеки или особый режим при связывании.

То, что вам нужно построить:

  • Boost.Filesystem
  • Boost.GraphParallel
  • Boost.IOStreams
  • Boost.MPI
  • Boost.ProgramOptions
  • Boost.Python
  • Boost.Regex
  • Boost.Serialization
  • Boost.Signals
  • Boost.System
  • Boost.Thread
  • Boost.Wave

Так что же вы пытаетесь построить?

0 голосов
/ 21 января 2011

Для создания универсальных двоичных файлов под Tiger я создавал user-config.jam file в своем домашнем каталоге ($HOME):

using darwin : : : <compileflags>"-arch ppc -arch i386 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" ;

А затем я собирал Boost как обычно сВаренье.Вероятно, это все равно должно работать со старыми версиями Mac OS X.

Другой способ - использовать MacPorts, но в этом случае все зависимости Boost должны быть перестроены как универсальные двоичные файлы, что не всегда возможно (я имею в виду это на Tigerдва раза, но не удалось).

В обоих случаях вам необходимо установить MacOSX10.4u.sdk с XCode.

[править]

Чтобы построить три архитектуры, вам лучше прочитать ответ на аналогичный вопрос.Вкратце, параметры сборки в user-config.jam зависят от вашей и целевой версий Mac OS X.Поэтому вам лучше попробовать различные варианты, основанные на вышеупомянутом ответе.

...