dsp-site/wiki/Prog/Development/Программные проект и иерархия каталогов.adoc

48 lines
3.8 KiB
Plaintext
Raw Normal View History

2020-04-11 17:09:43 +00:00
= Программный проект и иерархия каталогов
:title-separator: {sp}|
:category: Программирование
:tags: Linux, программирование, cmake
Для операционных систем типа Linux принят стандарт
https://ru.wikipedia.org/wiki/FHS[FHS] («стандарт иерархии файловой
системы»), унифицирующий местонахождение файлов и каталогов с общим
назначением в файловой системе. Полная текущая версия стандарта
находится http://refspecs.linuxfoundation.org/fhs.shtml[здесь].
В соответствии с данным стандартом, а также принятыми в ведущих
дистрибутивах правилами размещения исполняемых файлов в каталогах
пользователей, можно выделить следующие типы расположения:
* системная иерархия в каталоге `/usr` используется для установки
бинарных пакетов для данного дистрибутива;
* системная иерархия в каталоге `/usr/local` используется для установки
программного обеспечения системным администратором без использования
пакетов (не рекомендуется для использования из-за проблем поддержки
в актуальном состоянии);
* системная иерархия в каталоге `/opt` используется для установки
стороннего программного обеспечения. В рамках данной иерархии
предполагается, что каждый программный продукт располагается в
собственном каталоге. При таком типе сборки обычно используются
дополнительные методы (статическая компоновка, включение в состав
пакета своего набора динамических библиотек) для обеспечения работы
2020-04-11 20:09:16 +00:00
пакета в операционных системам с отличающимся составом библиотек
2020-04-11 17:09:43 +00:00
и другим циклом обновления;
* системная иерархия в домашнем каталоге пользователя не имеет
определённого стандарта, обычно производители дистрибутивов
предлагают использовать для исполняемых файлов каталоги
`$HOME/bin` или `$HOME/.local/bin`.
2020-04-11 20:09:16 +00:00
Система автоматизации сборки программного обеспечения `CMake` позволяет
организовать окружение подобное перечисленным выше. На этапе сборки
проекта можно создать структуру каталогов, которая будет отвечать
требованиям по логическому разделению файлов на исполняемые,
заголовочные, библиотеки, файлы настроек и т.д.
2020-04-11 17:09:43 +00:00
2020-04-11 20:58:43 +00:00
Для обеспечения единообразной работы вне зависимости от варианта
иерархии каталогов, в которой находится исполняемый файл, можно
выполнять автоматическую настройку на работу в текущем окружении.