LSB SDK

[url=http://ldn.linuxfoundation.org/lsb/build-lsb-compliant-application]LSB Software Development Kit (SDK)[/url] — инструментарий, основанный на использовании для компиляции и компоновки приложений специальных заголовочных файлов и библиотек. Заголовочные файлы и библиотеки SDK гарантируют отсутствие среди зависимостей получаемой программы непереносимых интерфейсов, которые либо отсутствуют во многих системах, либо имеют в них различную функциональность.

Основной целью LSB SDK является помощь в разработке приложений, отвечающих требованиям стандарта [url=http://ldn.linuxfoundation.org/lsb]Linux Standard Base[/url]. SDK позволяет собирать приложения, отвечающие требованиям любой версии стандарта, начиная с 3.0. Кроме того, инструментарий может быть использован при создании приложений для устаревших дистрибутивов в случаях, когда инструментарий системы, в которой производится сборка, привносит в собираемое приложение зависимости, отсутствующие в более старых системах (например, слишком новые версии символов или новые типы секций ELF-файлов). 

LSB SDK включает три основных компонента:

  • заголовочные файлы;
  • библиотеки-заглушки;
  • обертки для компиляторов C и C++ ([b]lsbcc[/b] и [b]lsbc++[/b] соответственно).

[b]Заголовочные файлы[/b] LSB SDK содержат декларации только тех функций, которые включены в одну из версий стандарта LSB. Доступность деклараций зависит от значения константы __LSB_VERSION__, содержащей версию LSB, в соответствии с которой производится сборка. Kонстанта определяется lsbcc/lsbc++ на основе соответствующих опций и переменных среды. 
В заголовочных файлах также определяются все необходимые для использования функций типы данных, константы и макроопределения, которые не приводят к появлению зависимостей от нестандартизованных функций.  

[b]Библиотеки-заглушки[/b] экспортируют только бинарные символы, включенные в стандарт. Для каждой версии стандарта SDK содержит отдельный набор библиотек-заглушек.

В процессе своей работы [b]lsbcc[/b] и [b]lsbc++ [/b]вызывают системный компилятор с опциями, позволяющими создавать бинарные файлы, отвечающие требованиям LSB определенной версии - в частности,  при компиляции и компоновке используются библиотеки и заголовочные файлы из SDK.  

Также инструментарий содержит скрипт [b]makelsbpkg[/b] для быстрого создания RPM-пакетов, отвечающих требованиям LSB.

LSB SDK может быть интегрирован в среду разработки Eclipse с помощью соответствующего [url=lsb_eclipse_plugin]плагина[/url].

Более подробная информация об инструментарии находится в [url=http://www.linuxfoundation.org/en/Book/HowToDevel]соответствующем разделе LSB Book[/url].