В винде я кладу длл нужной версии рядом с екзешником своей программы ей пофик, что там в системе. Вот это - единственно верный вариант при котором всё всегда работает. В т.ч. 32х разрядный софт на х64.
Винда сама тащит в себе наслоения говен мамонта, включая в себя все версии мелкомягких библиотек, которые когда-либо существовали - чтобы программа любой степени древности запустилась без проблем. И пухнет, и пухнет, и пухнет.
Сравните свежеустановленную семёрку (14 гигабайт) с пожившей, у которой в одной папке c:\Windows\winsxs больше двадцати гигабайт этих культурных наслоений.
Вывод? Если бы все писали бы на Паскале и клали бы все ДЛЛки в папку с программой - виндовс занимала на диске бы от силы десяток гигабайт.
Линуксятина объезжает эту проблему, загоняя весь софт в дистрибутив и его пакеты, чтобы версия чего угодно в системе была всегда только одна и ничего лишнего не было. Не принято шаманить с вставлением программ вручную потому что кошерный путь - дать установщику команду установить пакет такой-то, и он сам всё скачает и установит, включая все зависимости. Неудобно для программиста штучных софтин, не входящих в дистрибутивы, удобно для конечного пользователя.
Работает, как система разделения труда. В дистрибутив линукса попадают твои исходники - и после этого уже те, кто держит дистрибутивы, компилируют их под конкретную платформу и версии библиотек.
Возникает законный вопрос: а на кой приспосабливать под линукс своё типовое портируемое приложение, когда есть Wine ? За ради arm платформ, разве что.
Но, вот что интересно: мелкомягкие на десятке для арм ноутбуков уже реализовали запуск любых x86 приложений путём автоматического дизассемблирования и перекомпиляции на лету. Если линуксоводы догонят, лет через десять запилив ту же фичу в вайне - Win32 приложения станут бессмертными вездеходами, превратившись в "стандартный байт-код, тормозной, но поддерживающийся везде" - подобно пыху. Который тоже то ещё оно, но есть везде.
З.Ы. Уже десять лет, как я по работе программирую только на пыхе и жаваскрипте
