ошибка: сужение преобразования «194» из «int» в «char» внутри { }

Я пытаюсь скомпилировать eSpeak для связанного проекта, но получаю эту ошибку после выполнения команды make.

tr_languages.cpp:201:43: error: narrowing conversion of ‘194’ from 
‘int’ to ‘char’ inside { } [-Wnarrowing]
const char string_ordinal[] = {0xc2,0xba,0};  // masculine ordinal 
character, UTF-8
                                       ^
tr_languages.cpp:201:43: error: narrowing conversion of ‘186’ from     
‘int’ to ‘char’ inside { } [-Wnarrowing]
Makefile:102: recipe for target 'tr_languages.o' failed
make: *** [tr_languages.o] Error 1

Я искал об этом, и оказалось, что здесь объявление

const char string_ordinal[] = {0xc2,0xba,0}; 

должны были быть

const signed char string_ordinal[] = {0xc2,0xba,0}; 

Поскольку исходный код велик для изменения, есть ли другой способ его успешной компиляции?

Я использую gcc версии 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12)


person Vishwas    schedule 22.10.2016    source источник
comment
вы имеете в виду неподписанный символ, верно? в любом случае, компилятор говорит вам, как отключить предупреждение: -Wno-narrowing   -  person Jean-François Fabre    schedule 22.10.2016
comment
Или используйте -funsigned-char, чтобы сделать символы беззнаковыми   -  person Andrey Turkin    schedule 22.10.2016
comment
Это исправлено? Я сталкиваюсь с той же проблемой   -  person Raven Cheuk    schedule 19.06.2021
comment
Покопавшись, я исправил это, изменив эту строку на const char string_ordinal[] = {(char)0xc2,(char)0xba,0}; // masculine ordinal character, UTF-8   -  person Raven Cheuk    schedule 19.06.2021