Статическая сборка - static. Что это означает?
Во-первых это включение всех ваших и сторонних библиотек непосредственно в код вашей программы , то есть уход от зависимостей к внешним непонятным *.dll и т.д.
1. При этом вы собираете свою программу с подключением на этапе сборки файлов статических библиотек *.lib [msvs] (с заголовками *.h) сторонних разработчиков , причем открытого кода которых у вас может и не быть.
2. Далее вы можете собирать свою программу непосредственно из исходников своих, чужих и т.д. , то есть напрямую из файлов *.c, *.h . Это самый профессиональный путь, ибо вы отвечаете за каждую букву вашего кода и искать ошибки вы можете теперь только у себя.
3. Есть и еще третий как-бы вариант , когда вроде сборка идет тоже целиком из исходников, но частями. То есть например openSSL собираем по руководству из иcходников через компилятор/линковщик MSVS2010 в статические библиотеки *.lib (с *.h).
Потом собираем из исходников Qt ( например 4.8.1 ) тоже статически из исходников , но без поддержки openSSL, тем же компилятором линковщиком (msvc2010 например).
И наконец в проекте вашей программы подключаем библиотеки openSSL, подключаем нужные библиотеки Qt типа QtNetwork.lib , QtCore.lib и т.д. (собранные тем же тулчейном msvc2010 например) и получаем полностью собранную из исходников вашу программу. Важно наверно , чтобы компилятор/линковщик был один.
Заметьте, что в отличие от динамической сборки, в результате статической сборки Qt библиотеки будут без номера версии; например, вместо QtCore4.lib будет QtCore.lib.