Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Код, пот и слезы: композиционный анализ проектов на С/С++

Дата публикации: 24-09-2026 17:07:42

В экосистемах со сложившейся моделью пакетных индексов вроде Python, Java или JavaScript состав проекта обычно начинают анализировать с манифеста, где разработчик перечисляет прямые зависимости проекта и их допустимые версии. Менеджер пакетов читает эти требования, выбирает совместимые версии и подтягивает зависимости, которые нужны самим пакетам. Конкретный результат выбора сохраняется в lock-файле, где фиксируется уже не диапазон, а точные версии прямых и транзитивных зависимостей. В результате получается список всех пакетов, необходимых для работы с проектом.В проектах на C и C++ такой общей записи, как правило, нет. Одну библиотеку могут устанавливать через менеджер системных пакетов, другую собирать из исходников в отдельном пайплайне, третью копировать прямо в каталог с исходным кодом проекта. Все они могут оказаться в рабочем приложении, хотя ни один источник не обязан перечислять их все в одном месте.На крупной кодовой базе это быстро становится проблемой. Например, в нашем разборе автоматизации SBOM для LibreOffice в проекте была сотня с лишним C/C++ библиотек, собственная сборочная система и ресурсы вроде шрифтов и словарей, которые тоже попадают в поставку. За каждым компонентом такого SBOM стоит отдельное расследование от файла и команды сборки к имени проекта, версии и источнику. На каждом переходе теряется своя часть данных.В CodeScoring мы анализируем состав программных продуктов и на практике часто сталкиваемся с ограничениями разных экосистем. Разбор проектов на C/C++ требует особого внимания. В этой статье мы разобрали особенности этой экосистемы, которые осложняют построение SBOM, и постарались рассказать, что позволяют выяснить разные методы анализа. Читать далее

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Как собирать кроссплатформенные приложения. На C++. В браузере-14.6202-10-2026
2C++ в 2026-м: память, прод, игры, Rust и ИИ — зачем учить язык, который невозможно знать целиком08.9106-10-2026
3Частичное применение в C++: владение, время жизни и категории значений07.2821-09-2026
4Variadic templates в C++. 11 приёмов работы с пакетами параметров08.0316-09-2026
5Кросс-компиляция под андроид и не только010.0723-09-2026
6C++: пишем свою std::function07.0601-10-2026
7Выбираем бэкенд в 2026 (PHP, Dart и C++ Drogon)06.0617-09-2026
8C++: Айсберг времени жизни объектов07.6502-10-2026
9Продвинутый статический анализ в TypeScript-проектах: выходим за рамки tsc и ESLint014.7501-10-2026
10Написание ядра ОС с нуля. Часть 3 — Пропуск в высшую лигу08.6623-08-2026

Классификация: Мнения. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 7.9. Источник: habr.com.