Название: error: initializer-string for char array is too long Отправлено: berzerk от Январь 12, 2022, 13:52 Кодировка файлов в проекте выбрана Windows-1251. В редакторе висит куча "выдуманных" предупреждений "error: initializer-string for char array is too long".
Данные предупреждения формируются "clang code model"? можно ли от них избавиться без отключения проверки размеров массивов? Название: Re: error: initializer-string for char array is too long Отправлено: DarkHobbit от Январь 15, 2022, 08:32 Кодировка файлов в проекте выбрана Windows-1251. Про clang не подскажу, но корень ваших проблем - здесь. Не надо так делать. Да, часть проблем решается через принудительное задание кодеков и др., но рано или поздно косяки вылезут. Я в своё время прогнал исходники через enca, теперь там только UTF-8. (Ещё более правильный путь с точки зрения Qt - вообще не допускать в исходниках никаких нелатинских символов, русские и прочие строки держать в файлах переводов. Но для проекта, который никогда не выйдет за пределы России, это сильно избыточный подход, да.) Название: Re: error: initializer-string for char array is too long Отправлено: berzerk от Январь 15, 2022, 10:23 Код отлаживается на ПК, но его основная цель - микроконтроллер. Хранить и обрабатывать строки в МК на много проще и выгоднее в кодировке windows-1251. Я не знаю способа, по крайней мере простого, для смены кодировки файлов во время сборки проекта.
Название: Re: error: initializer-string for char array is too long Отправлено: kambala от Январь 15, 2022, 16:44 Я не знаю способа, по крайней мере простого, для смены кодировки файлов во время сборки проекта. этого можно добиться с помощью генерации файла в нужной кодировке во время сборки. в utf-8 будет файл-шаблон (логичнее всего в нем держать только нужные строки и ничего больше), а системе сборки задать «правило» для генерации конечного файла с помощью, например, iconv. Этот же файл и будет потом компилироваться, а не шаблон.Название: Re: error: initializer-string for char array is too long Отправлено: berzerk от Январь 18, 2022, 16:06 Спасибо за помощь. Я до последнего надеялся что можно все решить стандартными средствами IDE.
Название: Re: error: initializer-string for char array is too long Отправлено: kambala от Январь 18, 2022, 16:36 Спасибо за помощь. Я до последнего надеялся что можно все решить стандартными средствами IDE. не знаю поможет ли, попробуй добавить -finput-charset=windows-1251 (может кодировка по-другому называется) в настройки — C++ — Code Model — build system warnings — скопировать одну из существующих и вписать параметр в нижнее полеНазвание: Re: error: initializer-string for char array is too long Отправлено: berzerk от Январь 19, 2022, 09:02 Ранее встречал упоминание о том, что поле "Clang Warning" предназначено только для управления проверками. На деле так и получилось. Ошибка конфигурации выдается на все что не начинается с "-W" и такие опции просто удаляются.
Название: Re: error: initializer-string for char array is too long Отправлено: DarkHobbit от Январь 21, 2022, 09:12 Хранить и обрабатывать строки в МК намного проще и выгоднее в кодировке windows-1251. А что уж тогда не в канонiчном КОИ8-Р? ;DНазвание: Re: error: initializer-string for char array is too long Отправлено: berzerk от Январь 21, 2022, 10:15 Если объясните что вызвает смех в этих словах, то может быть посмеюсь вместе с вами.
Название: Re: error: initializer-string for char array is too long Отправлено: DarkHobbit от Январь 21, 2022, 15:04 Если объясните что вызвает смех в этих словах, то может быть посмеюсь вместе с вами. Это не смех, а добрая улыбка. Ну правда, вы же из однобайтовых кодировок почему-то сразу виндовую вспомнили, а она, хм, не самая "классическая".Название: Re: error: initializer-string for char array is too long Отправлено: berzerk от Январь 21, 2022, 17:15 Стандартная кодировка в Windows. Я даже и не задумывался о влиянии кодировки файла С++ проекта на работу программы в микроконтроллере. Этот "нюанс" вспыл на мно-о-о-го позднее, когда я последовал моде и создал новый проект в utf-8. И прошло еще мно-о-о-го лет до текущего момента, когда я решил расстаться с Eclipse и получил желтый от предупреждений в проекте экран.
|