Дата создания информации: 25.01.2026
Частью чего является?
Появление библиотек на языке программирования C++ (далее – C++), взаимодействующих с рабочим столом Fly в Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) (далее – Astra Linux SE 1.7), является частью появления компьютерных программ для Astra Linux SE 1.7.
Из чего состоит?
Особенностью появления библиотек на C++, взаимодействующих с рабочим столом Fly в Astra Linux SE 1.7, является их компиляция с установленным для параметра -fvisibility значением hidden.
Из информации, представленной на странице «gcc(1) — Linux manual page» сайта man7.org, следует, что использовать в других компьютерных программах символы (типы, переменные, функции) из библиотеки в таком случае будет невозможно, если только такая возможность для этих символов не определена явно.
Указанная ситуация возникает из-за необходимости подключения файла fly.prf для появления библиотек на C++, взаимодействующих с рабочим столом Fly в Astra Linux SE 1.7.
Файл fly.prf расположен в каталоге /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features в Astra Linux SE 1.7. Подключить этот файл можно путём добавления значения fly в переменную CONFIG в pro-файле для появления библиотеки.
CONFIG += fly
В файле fly.prf в параметры для появления библиотек в переменную CONFIG добавляется значение hide_symbols.
В описании значений переменной CONFIG в разделе «VARIABLES» документации на Qt 5.15 на сайте doc.qt.io написано, что это приводит к компиляции с установленным для параметра -fvisibilty значением hidden.
Для определения возможности использования символов из библиотеки в других компьютерных программах можно использовать специальные выражения языков программирования C и C++ – атрибуты символов.
В частности, для функций – это атрибут visibilty. Описание этого атрибута представлено в разделе «6.30 Declaring Attributes of Functions» документации на компиляторы GNU на сайте gcc.gnu.org.
Например, для определения возможности использования в других компьютерных программах функции show из библиотеки при объявлении этой функции можно использовать следующее выражение.
__attribute__ ((visibility ("default"))) void show();
Если функций, для которых необходимо определить возможность использования в других компьютерных программах, в библиотеке несколько, то можно определить более короткую символическую константу и использовать её при объявлении этих функций.
/**
* Определение более короткой символической константы для определения
* возможности использования функции в других компьютерных программах
*/
#define PUBLIC_FUNCTION __attribute__ ((visibility ("default")))
/**
* Использование символической константы для определения возможности
* использования в других компьютерных программах функции show
*/
PUBLIC_FUNCTION void show();
/**
* Использование символической константы для определения возможности
* использования в других компьютерных программах функции hide
*/
PUBLIC_FUNCTION void hide();
Как ещё представлено?
Другие представления появления библиотек на C++, взаимодействующих с рабочим столом Fly в Astra Linux SE 1.7, представлены в следующей таблице.
| № | Представление |
|---|---|
| 1 | Статья «Появление библиотек на C++, взаимодействующих с рабочим столом Fly в Astra Linux SE 1.7» в канале «Аделантер» в Дзене |
Как обсудить?
Обсудить появление библиотек на C++, взаимодействующих с рабочим столом Fly в Astra Linux SE 1.7, можно с использованием способов, представленных в следующей таблице.
| № | Способ |
|---|---|
| 1 | Использование комментариев к сообщению для обсуждения появления библиотек на C++, взаимодействующих с рабочим столом Fly в Astra Linux SE 1.7, в канале «Аделантер» в Telegram |
| 2 | Использование комментариев к статье «Появление библиотек на C++, взаимодействующих с рабочим столом Fly в Astra Linux SE 1.7» в канале «Аделантер» в Дзене |