Чтобы использовать динамические библиотеки в решении на базе 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 не найдена.