Пиков / КАПО
Как читать авторский курс и нормативные материалы

Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.

qmake

Контекст qmake — исторический сборочный инструмент Qt, управляемый файлами проекта *.pro. В Qt6 он считается унаследованным и вытеснен CMake, но огромный объём legacy‑кода на C++ всё ещё собирается именно qmake. Для SCA это типичный «слепой» случай: декларации зависимостей минимальны, а список реально слинкованных библиотек выводится из переменных LIBS/QT, а не из манифеста с версиями.

Для чего

qmake генерирует Makefile (или проекты для IDE) из *.pro: определяет, какие модули Qt (QT += core gui network) и какие внешние библиотеки (LIBS += -lssl -lcrypto) подключаются к цели, какие пути к заголовкам используются. Это даёт декларацию подключаемых библиотек, но без версий и без устойчивого ключа компонента.

Как применяют

Сгенерировать сборочные файлы и затем перехватить реальные вызовы компилятора:

qmake project.pro
make                       # либо: qmake -d для дампа разбора .pro

Прочитать декларации зависимостей прямо из *.pro:

QT       += core network sql
LIBS     += -L/usr/local/lib -lssl -lcrypto -lz
INCLUDEPATH += /opt/thirdparty/include

Здесь видно «что подключают» (-lssl, -lcrypto, -lz, модули Qt), но не «какой версии» — версию приходится снимать с готового бинаря (ldd/readelf -d) или сопоставлять с системными пакетами.

Сильные стороны

Ограничения

Offline / on-premise

Да. qmake — локальный инструмент, не обращается в сеть и не имеет менеджера пакетов, который что‑то скачивает. Зависимости берутся из уже установленного Qt SDK и системных библиотек; в закрытом контуре достаточно офлайн‑дистрибутива Qt.

Связанные темы

М09 C/C++ legacy · П31. Пилот CodeScoring make CMake qmake · П19. C C++ make build inventory · П22. ELF dynamic dependencies · CMake · ldd readelf LIEF · pkg-config