Я хочу иметь статическую универсальную двоичную библиотеку Boost. (Предпочтительно последняя стабильная версия, то есть 1.43.0 или новее.)
Я нашел много обращений Google с похожими проблемами и возможными решениями. Однако большинство из них выглядит устаревшим. Также ни один из них действительно не работал.
Прямо сейчас я пытаюсь
sudo ./bjam --toolset=darwin --link=static --threading=multi \
--architecture=combined --address-model=32_64 \
--macosx-version=10.4 --macosx-version-min=10.4 \
install
Это прекрасно компилируется и устанавливается. Однако полученные двоичные файлы кажутся сломанными.
az@ip245 47 (openlierox) %file /usr/local/lib/libboost_signals.a
/usr/local/lib/libboost_signals.a: current ar archive random library
az@ip245 49 (openlierox) %lipo -info /usr/local/lib/libboost_signals.a
input file /usr/local/lib/libboost_signals.a is not a fat file
Non-fat file: /usr/local/lib/libboost_signals.a is architecture: x86_64
Редактировать: Кажется, что команда была неправильной, и я должен удалить "-" для большинства параметров. Итак, команда, которую я сейчас пытаюсь (-a просто означает перестроить все):
sudo ./bjam -a toolset=darwin link=static threading=multi \
architecture=combined address-model=32_64 \
macosx-version=10.4 macosx-version-min=10.4 \
install
Однако, это дает много странных ошибок (которые у меня уже были ранее), все это так:
darwin.compile.c++.pch bin.v2/libs/math/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/macosx-version-min-10.4/macosx-version-10.4/threading-multi/../src/tr1/pch.hpp.gch
In file included from ./boost/math/special_functions/acosh.hpp:18,
from ./boost/math/special_functions.hpp:15,
from libs/math/build/../src/tr1/pch.hpp:9:
./boost/config/no_tr1/cmath.hpp:21:19: error: cmath: No such file or directory
Это может быть еще одна проблема, с которой я сталкиваюсь при сборке универсальных двоичных файлов: g ++ на MacOSX не работает с -arch ppc64