Тема навеяна использованием Qxt в IDE Netbeans. Дело в следующем. Собрал Qxt, создал простенький проект, прописал в секцию CONFIG pro-файла проекта:
CONFIG += qxt
QXT += gui
Код самого "проекта":
C++ (Qt)
#include <QApplication>
#include <QxtSpanSlider>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QxtSpanSlider sl;
sl.show();
return app.exec();
}
И в нетбинсе, и в криаторе, все этапы - препроцессинг, компиляция, сборка, собственно runtime, всё проходит хорошо.
Но нетбинс подчёркивает эту строку
C++ (Qt)
#include <QxtSpanSlider>
красным, а криатор нет. В нетбинсе такое за 4 года вижу впервые - чтоб он указывал на отсутствие файла и в то же время всё работало. Ладно бы просто подчёркивал, но ведь и автодополнение кода при этом не работает, и соответственно при ctrl+space не посмотришь все доступные методы объектов, описания и тому подобные полезности.
Так вот, может знающие подскажут, что такого Qxt при установке мог "сказать" криатору, на основе чего тот его нормально воспринимает аналогично с классами Qt и чего может не знать нетбинс или другие IDE? Ведь Qxt даже установился "нестандартно": не в "/usr/local/include/Qxt" + "/usr/local/lib" как это обычно бывает при установке вручную от рута, а в "/usr/local/Qxt/include" + "/usr/local/Qxt/lib", каким образом тогда хидеры и либы подцепляются к проекту? Может быть qmake при парсинге .pro-файла когда встречает запись qxt обращается к какому-то стороннему конфигу (соответствующую запись в который внёс Qxt) где есть эти соответствия, грубо говоря, "qxt = /usr/local/Qxt/include" и т.п.? Вот хотелось бы очень разобраться в данной архитектуре