Возможно, имелись в виду модификаторы PUBLIC, PRIVATE и INTERFACE, которые обозначают способ наследования зависимостей целей сборки в контексте, например, CMake. 5
Разница между PRIVATE и INTERFACE заключается в характере наследования зависимостей: 5
- PRIVATE обозначает частные зависимости, которые подключаются к цели сборки, но не подключаются к её клиентам. 5 Например, если библиотека A имеет приватную зависимость от библиотеки Б, а от библиотеки A зависит приложение B, то cmake слинкует приложение B только с библиотекой А, но не с библиотекой Б. 5
- INTERFACE обозначает зависимость от интерфейса, что означает, что ничего линковать не нужно, а нужно лишь прокинуть настройки, такие как, например, пути к заголовочным файлам. 5 В большинстве случаев интерфейсные зависимости используют для подключения header-only библиотек. 5
Таким образом, PRIVATE фокусируется на локальных зависимостях, а INTERFACE — на настройках, которые не требуют линковки, но необходимы для других целей, которые используют указанную библиотеку в качестве зависимости. 15