OSX Snow Leopard: Build Boost 1.47.0 для 32 и 64 бит - PullRequest
5 голосов
/ 02 августа 2011

Я схожу с ума ... Я сейчас пытаюсь обновить boost для своего проекта с 1.44.0 до 1.47.0 на osx snow leopard.- Я хочу собрать его с помощью следующей команды:

./b2 macosx-version=10.6 link=static address-model=32_64 threading=multi stage

, где я ожидал, что это даст мне статическую полную сборку, которая поддерживает i386, а также x86_64.В любом случае, очевидно, что нет, так как, если я запрашиваю lipo -info полученных библиотек, они все x86_64. Что я могу сделать, чтобы решить эту проблему?Может быть, сценарий сборки не работает?

Ответы [ 6 ]

2 голосов
/ 12 июля 2012

Вот что у меня сработало.

./b2 link=static threading=multi toolset=darwin cxxflags="-arch i386 -arch x86_64" target-os=darwin address-model=32_64 stage
2 голосов
/ 17 августа 2011

Я получил его на работу, используя эту сборку:

. / B2 link = статическая многопоточность = мультиинструмент = darwin cxxflags = "- arch i386 -arch x86_64" macosx-version = 10.6 stage

1 голос
/ 18 октября 2012

Я перепробовал все варианты, и ни один из них не создал универсальный двоичный файл с 32- и 64-разрядной архитектурой.Тот, который наконец-то сработал для меня, был таким:

./b2 threading=multi toolset=darwin architecture=x86 target-os=darwin address-model=32_64 stage

Это с бустом 1.51.0 на Mountain Lion.

1 голос
/ 02 октября 2012

Единственный способ для меня получить толстые двоичные файлы, создающие Boost 1.49 на MacOSX 10.6, - это использовать оба параметра Architecture: x86 и address-model = 32_64.

0 голосов
/ 08 апреля 2014

У меня тоже проблемы со сборкой 32/64 комбинированных версий, и в итоге я прибег к сборке двух версий по отдельности (мне пришлось добавить флаг cxx «-arch i386» в 32-битную сборку) и использованию lipo для их объединения.Например:

./bjam link=static release install address-model=32 --prefix=$prefix_dir-x86" --python-buildid=2.7 python=2.7 --with-python cxxflags="-fPIC -Wfatal-errors -arch i386" -s NO_BZIP2=1 -s NO_ZLIB=1
./bjam link=static release install address-model=64 --prefix=$prefix_dir-x64" --python-buildid=2.7 python=2.7 --with-python cxxflags="-fPIC -Wfatal-errors" -s NO_BZIP2=1 -s NO_ZLIB=1
lipo $prefix_dir-x86/lib/libboost_python-2_7.a $prefix_dir-x64/lib/libboost_python-2_7.a -output $prefix_dir-universal/libboost_python-2_7.a -create

Учитывая, что я все еще получил 64-разрядные двоичные файлы (когда я запросил 32-разрядную версию), прежде чем я добавил "-arch i386", я подозреваю, что существует проблема со сценарием сборки bjam / b2 для 32-разрядной версиидвоичные файлы на macos.

0 голосов
/ 12 июня 2013

Вы должны добавить опцию «архитектура», например:

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