Чтобы использовать динамические библиотеки в решении на базе KasperskyOS, нужно выполнить следующие условия:
BlobContainer
должна быть включена в решение.-rdynamic
(с динамической компоновкой).CMake
-команда initialize_platform()
делает так, что для сборки всех исполняемых файлов, заданных через CMake
-команды add_executable()
, этот флаг используется автоматически.
Если CMake
-команда initialize_platform(FORCE_STATIC)
указана в корневом файле CMakeLists.txt
, то тулчейн выполняет статическую компоновку исполняемых файлов.
CMake
-команда project_static_executable_header_default()
влияет на сборку исполняемых файлов, заданных через последующие CMake
-команды add_executable()
в одном файле CMakeLists.txt
. Тулчейн выполняет статическую компоновку этих исполняемых файлов.
CMake
-команда platform_target_force_static()
влияет на сборку одного исполняемого файла, заданного через CMake
-команду add_executable()
. Тулчейн выполняет статическую компоновку этого исполняемого файла.
Исполняемый файл, который собирается с флагом -rdynamic
, компонуется со статической библиотекой, если динамическая библиотека не найдена. Например, если используется CMake
-команда target_link_libraries
(client -lm)
, исполняемый файл программы client
компонуется со статической библиотекой libm.a
, если динамическая библиотека libm.so
не найдена.