Однострочный патч для препроцессора cpp позволяет вводить UTF-8. Детали для gcc даны на
https://www.raspberrypi.org/forums/viewtopic.php?p=802657
однако, поскольку препроцессор является общим, этот же патч должен работать и для g ++. В частности, необходим патч для gcc-5.2
diff -cNr gcc-5.2.0/libcpp/charset.c gcc-5.2.0-ejo/libcpp/charset.c
*** gcc-5.2.0/libcpp/charset.c Mon Jan 5 04:33:28 2015
--- gcc-5.2.0-ejo/libcpp/charset.c Wed Aug 12 14:34:23 2015
***************
*** 1711,1717 ****
struct _cpp_strbuf to;
unsigned char *buffer;
! input_cset = init_iconv_desc (pfile, SOURCE_CHARSET, input_charset);
if (input_cset.func == convert_no_conversion)
{
to.text = input;
--- 1711,1717 ----
struct _cpp_strbuf to;
unsigned char *buffer;
! input_cset = init_iconv_desc (pfile, "C99", input_charset);
if (input_cset.func == convert_no_conversion)
{
to.text = input;
Обратите внимание, что для работы вышеуказанного патча должна быть установлена последняя версия iconv, которая поддерживает преобразования C99. Введите iconv --list, чтобы проверить это, в противном случае вы можете установить новую версию iconv вместе с gcc, как описано в ссылке выше. Измените команду настройки на
$ ../gcc-5.2.0/configure -v --disable-multilib \
--with-libiconv-prefix=/usr/local/gcc-5.2 \
--prefix=/usr/local/gcc-5.2 \
--enable-languages="c,c++"
если вы собираете для x86 и хотите также включить компилятор c ++.