Есть библиотека so/dll
Из неё необходимо узнать тип вызвавшего её приложения.
Это несложно.
if( QApplication::type() == QApplication::Tty)
{
...
}
if( QApplication::type() == QApplication::GuiClient)
{
...
}
А как узнать, что вызвавшее приложение было собрано с определённой конфигурацией ?
QT = core \
gui
CONFIG += qt \
release \
thread
Важно узнать был в секции CONFIG параметр thread или нет, чтобы библиотечные функции адекватно реагировали
на многопоточные приложения. Иначе приходиться в библиотечные классы добавлять свойство
bool isMultiThread;
А в приложениях помнить, что перед запуском потоков это свойство нужно установить в true, чтобы библиотека не показывала диалоги, а высылала сигналы с сообщениями для вывода их в главное окно вызвавшего приложения;