Если у вас стоит русская локаль в Windows и вы пытаетесь программировать в Qt Creator, то много-много лет вам предлагалось, предлагается сейчас и явно до скончания веков будет предлагаться изучать кракозябровый язык. Пример на картинке.

Очень «удобно»
Проблема в том, что тулчейн VC++ отдаёт сообщения в кодировке DOS (866), а Qt Creator ожидает Windows 1251. Теоретически проблема легко фиксится, но как-то так выходит, что вот уже много лет всем участвующим в разработке Qt Creator на неё начхать, и он продолжает кракозябрить.
Поскольку жить так нельзя, народ изгаляется как может. Кто-то jom патчит. Кто-то в реестре ковыряется. Кто-то даже плагины в Qt Creator пишет. К сожалению, все эти решения страдают чрезмерной кривизной и/или геморностью.
Глядя на все эти танцы, я вначале приуныл. А потом подумал: ведь кодировка консоли наследуются вместе с консолью для всех процессов-потомков, разве нет? Значит, если для make задать кодировку, то все компиляторы-линковщики должны будут её увидеть; пишут они в консоль много лет как в Unicode, просто по дефолту кодировка у консоли досовская, вот и происходит перекодирование в неё.
Так что я тряхнул стариной, и заюзал qmake для благого дела:
1 2 3 4 5 6 7 8 9 10 11 12 |
QMAKE_EXTRA_TARGETS += before_build makefilehook makefilehook.target = $(MAKEFILE) makefilehook.depends = .beforebuild PRE_TARGETDEPS += .beforebuild before_build.target = .beforebuild before_build.depends = FORCE before_build.commands = chcp 1251 |
Скопируйте себе как есть, без изменений, в pro файл вашего проекта. И будет вам счастье.