Пришел к выводу полного непонимания типов сборок и назначения файлов *.dll и *.a и как вообще вся эта кухня устроена.
частный случай - виндовоз и MinGW32, Qt4
--== I ==--
вот собираю я Qt с разделяемыми библиотеками (configure -shared ....)
создаются dll'ки, это мне ВРОДЕ понятно.
1) При компиляции программы мне нужны только заголовочники для этих dll'ок, сами dll'ки не нужны.
2) При запуске программы она обращается к ОСьке и говорить нужна такая-то функция из такой-то dll'ки. ОСька ищет dll'ку и, если находит, то загружает ее в память, и как-то там говорит моей программе по каким адресам эта функция находиться
--== II ==--
вот собираю я Qt статически (configure -static ....)
создаются a'шки, это мне тоже ВРОДЕ понятно.
1) При компиляции программы мне нужны уже не только заголовочники для этих a'шек, но и сами a'шки, чтобы линкер соеденил в один exe'шник объектники (*.o) моей программы и Qt'ишные a'шки.
2) При запуске программы она оказывается самодостаточной и просит у ОСьки только стандартные ОСькины функции.
Если это все так, то у меня вопрос, а зачем при сборке с разделяемыми библиотеками в каталоге %QTDIR%\lib создается море a'шек?
И почему нельзя один Qt'шный корневой каталог использовать для разных типов сборок, ведь в %QTDIR%\lib уже есть и то и другое?