Платиновый вопрос.
1. Как это сделать?
Сделать это можно собрав Qt из исходников с необходимыми ключами конфигурации. Руководств в сети
много.
2. Почему вообще это требуется делать?
Делать этого не требуется в общем случае. Вам необходимо просто собрать бинарные версии библиотек (dll) в папке рядом с вашим исполняемым файлом (одна из них - модуль Qt5Widgets.dll, о которой вам говорит ошибка). Это
динамическая линковка библиотек.
Для удобства вы всегда можете воспользоваться
windeployqt (для Windows), который соберет все необходимые файлы в одно место или просто отыскав и сложив их вручную (проанализировав зависимости процесса под отладкой в IDE с помощью
Process Explorer или специальной утилитой -
DependencyWalker)
Чтобы все необходимые модули Qt "вкомпилировались" в ваш исполняемый файл (
статическая линковка), вам нужно собрать версию Qt, которая это поддерживает (но она не распространяется в виде готового бинарного пакета, потому из исходников).
Ну и статическая линковка при прочих равных нарушает community-лицензию Qt, если с программой не распространять открытый исходный код (нужно дать возможность пользователю заменить версию Qt динамически, либо собрать программу с ним заново).