Я недавно был позвонить, чтобы сделать это, в том случае, если это использование кому-либо эти шаги я последовал:
- Скачать и установить LSB SDK
- Скачать версию увеличить и извлечь в/opt/boost/boost_ < версия > (я использовал 1.43)
- Убедитесь, что установлен libbz2-dev.
- Bootstrap с
cd /opt/boost/boost_<version>
./bootstrap.sh --prefix=/opt/boost --without-libraries=python,mpi --without-icu
- Edit
/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
Я не пытался получить либо питон или библиотеки MPI работает, и я не пытаюсь получить ICU работать с библиотекой библиотеки Boost.regex. Последнее, вероятно, относится к созданию статических версий библиотек ICU с помощью набора инструментов LSB.
-fPIC
не является строго необходимым для 32-разрядной Linux, но необходим, если вы хотите связать статические библиотеки с общей библиотекой для 64-разрядной Linux.
Конечный результат должен быть двоичным кодом в /opt/boost/lib
и заголовками в /opt/boost/include
, очевидно, вы можете изменить префикс в соответствии с вашими предпочтениями. У меня все еще есть достаточная работа, прежде чем я портировал весь наш код в LSB, поэтому я не могу сообщить, насколько хорошо процесс сертификации еще продолжается.
С каких пор LSB является компилятором? Я думал, что это просто спецификация того, какие библиотеки и утилиты должны быть установлены и доступны в дистрибутиве Linux (так что другие библиотеки и утилиты могут зависеть от их присутствия). –
Michael Aaron Safyan: проект LSB предоставляет свой собственный компилятор C++, который можно использовать вместо GCC, и должен создавать двоичные файлы, совместимые со всеми дистрибутивами Linux. Действительно, использование этого компилятора для моего собственного кода дает хорошие результаты. Однако у меня проблемы с сторонними библиотеками, используемыми в моем проекте. –
@Michael, LSB - это набор спецификаций, но рабочая группа также предоставляет инструменты, которые помогают разрабатывать программы, соответствующие этим спецификациям. См. Здесь http://ldn.linuxfoundation.org/lsb/porting-lsb-demo и здесь http://www.linuxfoundation.org/collaborate/workgroups/linux-standard-base-lsb/lsb-sdk-403 –