Передача флагов компилятора для повышения библиотек (таких как Thread), которые требуют компиляции - PullRequest
8 голосов
/ 04 августа 2011

Итак, я знаю, что библиотеки повышения в основном предназначены только для заголовков, но есть некоторые, которые требуют компиляции, например Boost.Thread. В Дарвине, как мне скомпилировать их и передать флаг -m32, чтобы они могли быть скомпилированы в 32-битный (i386) двоичный файл? Есть такая вещь с Jamroot, о которой я никогда не слышал, и я совершенно не уверен, с чего начать.

Пояснение: я не спрашиваю, как скомпилировать программу с флагом -m32 и использовать библиотеки повышения. Я спрашиваю, как скомпилировать сами библиотеки Boost с флагом -m32.

Ответы [ 2 ]

6 голосов
/ 04 августа 2011

Чтобы указать, для какой архитектуры нужно компилировать, укажите функцию architecture при вызове b2.

Чтобы указать параметры компилятора, которые еще не имеют встроенных функций, укажите функцию cxxflags при вызове b2.

Чтобы указать параметры компоновщика, которые еще не имеют встроенных функций, укажите функцию linkflags при вызове b2.

Все они перечислены в документации Boost.Build .

1 голос
/ 13 сентября 2012

Из того, что я понимаю, и если я правильно прочитал документацию, способ построить определенную архитектуру boost - с помощью опции "address-model = xx" для b2.

Примеры:

b2 install toolSET=msvc-9.0 link=shared variant=release address-model=64

или

b2 install toolSET=msvc-9.0 link=shared variant=release address-model=32

Надеюсь, это поможет.

С уважением,

-RMWChaos

РЕДАКТИРОВАТЬ: Найден другой поток SO, обеспечивающий тот же ответ здесь .

...