В экосистемах со сложившейся моделью пакетных индексов вроде Python, Java или JavaScript состав проекта обычно начинают анализировать с манифеста, где разработчик перечисляет прямые зависимости проекта и их допустимые версии. Менеджер пакетов читает эти требования, выбирает совместимые версии и подтягивает зависимости, которые нужны самим пакетам. Конкретный результат выбора сохраняется в lock-файле, где фиксируется уже не диапазон, а точные версии прямых и транзитивных зависимостей. В результате получается список всех пакетов, необходимых для работы с проектом.В проектах на C и C++ такой общей записи, как правило, нет. Одну библиотеку могут устанавливать через менеджер системных пакетов, другую собирать из исходников в отдельном пайплайне, третью копировать прямо в каталог с исходным кодом проекта. Все они могут оказаться в рабочем приложении, хотя ни один источник не обязан перечислять их все в одном месте.На крупной кодовой базе это быстро становится проблемой. Например, в нашем разборе автоматизации SBOM для LibreOffice в проекте была сотня с лишним C/C++ библиотек, собственная сборочная система и ресурсы вроде шрифтов и словарей, которые тоже попадают в поставку. За каждым компонентом такого SBOM стоит отдельное расследование от файла и команды сборки к имени проекта, версии и источнику. На каждом переходе теряется своя часть данных.В CodeScoring мы анализируем состав программных продуктов и на практике часто сталкиваемся с ограничениями разных экосистем. Разбор проектов на C/C++ требует особого внимания. В этой статье мы разобрали особенности этой экосистемы, которые осложняют построение SBOM, и постарались рассказать, что позволяют выяснить разные методы анализа. Читать далее
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Как собирать кроссплатформенные приложения. На C++. В браузере | -1 | 4.62 | 02-10-2026 |
| 2 | C++ в 2026-м: память, прод, игры, Rust и ИИ — зачем учить язык, который невозможно знать целиком | 0 | 8.91 | 06-10-2026 |
| 3 | Частичное применение в C++: владение, время жизни и категории значений | 0 | 7.28 | 21-09-2026 |
| 4 | Variadic templates в C++. 11 приёмов работы с пакетами параметров | 0 | 8.03 | 16-09-2026 |
| 5 | Кросс-компиляция под андроид и не только | 0 | 10.07 | 23-09-2026 |
| 6 | C++: пишем свою std::function | 0 | 7.06 | 01-10-2026 |
| 7 | Выбираем бэкенд в 2026 (PHP, Dart и C++ Drogon) | 0 | 6.06 | 17-09-2026 |
| 8 | C++: Айсберг времени жизни объектов | 0 | 7.65 | 02-10-2026 |
| 9 | Продвинутый статический анализ в TypeScript-проектах: выходим за рамки tsc и ESLint | 0 | 14.75 | 01-10-2026 |
| 10 | Написание ядра ОС с нуля. Часть 3 — Пропуск в высшую лигу | 0 | 8.66 | 23-08-2026 |