Кракозябры сообщений компилятора в QtCreator

280
27 декабря 2017, 21:09

При использовании компилятора Microsoft в Qt-проекте в окне сборки выводятся сообщения об ошибках и предупреждениях с поломанной кодировкой. Например:

warning C4311: ЇаЁўҐ¤Ґ­ЁҐ вЁЇ®ў: гбҐзҐ­ЁҐ гЄ § вҐ«п Ё§ "Qt::HANDLE" ў "unsigned int"
warning C4302: ЇаЁўҐ¤Ґ­ЁҐ вЁЇ®ў: гбҐзҐ­ЁҐ Ё§ "Qt::HANDLE" ў "unsigned int"

Как можно вывести подобные сообщения в адекватном читабельном виде, на русском или английском языках?

Answer 1

Одно из возможных решений – скрыть для компилятора cl.exe файлы со строками языка ОС. В данном случае речь о локале ru-ru с идентификатором LCID, равным 1049. Полный список идентификаторов можно посмотреть здесь, стоит учесть, что там они указаны в шестнадцатеричном виде.

В зависимости от версии и разрядности компилятора, выбранного для Qt-проекта расположение файла cl.exe может разниться. Например, для MSVC2015 64bit путь будет такой:

{Коренная папка Visual Studio}\VC\bin\amd64

По этому пути достаточно переименовать папку "1049", например, добавив подчёркивание "1049_", после чего выполнить пересборку проекта. Сообщения компилятора будут выведены на английском языке:

warning C4311: 'type cast': pointer truncation from 'Qt::HANDLE' to 'unsigned int'
warning C4302: 'type cast': truncation from 'Qt::HANDLE' to 'unsigned int'
READ ALSO
Реализация reserve для вектора

Реализация reserve для вектора

Правильно я сделала функцию?

212
Умножение матрицы на вектор. C++ [требует правки]

Умножение матрицы на вектор. C++ [требует правки]

Создал класс матрица и класс векторКак реализовать функцию умножения друг на друга их?

385
Qt перебор содержимого папок

Qt перебор содержимого папок

Есть папка, в папке некоторое кол-во папок, в которых находятся изображениязадача заключается в том чтобы, указав начальную папку, получить...

297