Мне недавно звонили, чтобы сделать это, если это кому-то пригодится, вот шаги, которые я выполнил:
- Загрузите и установите LSB SDK
- Загрузите версию boost и распакуйте ее в / opt / boost / boost_ (я использовал 1.43)
- Убедитесь, что libbz2-dev установлен.
- Бутстрап с
cd /opt/boost/boost_<version>
./bootstrap.sh --prefix=/opt/boost --without-libraries=python,mpi --without-icu
- Редактировать
/opt/boost/boost_<version>/project-config.jam
и добавить строку
using gcc : : /opt/lsb/bin/lsbc++ : <cflags>-U_GNU_SOURCE <cxxflags>-U_GNU_SOURCE ;
в верхней части файла. Обратите внимание, что это не удастся, если у вас есть объявление использования в одном из других файлов, из которых bjam считывает свою конфигурацию, вы можете передать --debug-configuration
, чтобы получить представление о том, какие файлы он читает.
./bjam cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC install
Я не пытался заставить работать библиотеки python или MPI, а также не пытался заставить ICU работать с библиотекой boost.regex. Последнее, вероятно, является случаем создания статических версий библиотек ICU с помощью набора инструментов LSB.
-fPIC
не является строго необходимым для 32-битной Linux, но требуется, если вы хотите связать статические библиотеки в разделяемую библиотеку для 64-битной Linux.
Конечным результатом должны быть двоичные файлы в /opt/boost/lib
и заголовки в /opt/boost/include
, очевидно, вы можете изменить префикс в соответствии со своими предпочтениями. У меня еще много работы, прежде чем я перенес весь наш код в LSB, поэтому я пока не могу сообщить, насколько хорошо идет процесс сертификации.