Цитата(Sirko @ Dec 26 2010, 10:17)

Неужели Вы думаете, что сообщения об этих ошибках очевидны для всех, так же как и для Вас.
Мне абсолютно неясно, почему gnu99 для си valid, я для с++ "инвалид". Или в 99-ом плюсы не придумали? Конечно же, придумали.
Как уже было сказано, С и С++ это разные языки.
С++ постарался поддержать как можно больше из С, но вот как раз плюсы придумали ДО 99 года и особенности С стандарта 99-го года в него не вошли.
В любом случае, указывать для С++ ключ совместимости со стандартом языка С — странно. То же самое (предупредение option ... is valid for ... but not for ...) будет при попытке указать ключ -std=c++98 -std=gnu++98 для файла .c
И если сообщение
error: initializer-string for array of chars is too long непонятно, то таки надо что-то почитать по языкам. Можно, конечно, и в разделе дл начинающих поспрашивать, как уже советовали, но лучше почитать.
Цитата(Sirko @ Dec 26 2010, 10:17)

cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++
При использовании makefile из примера операционки, как поправить его?
makfile из примера (если имеется ввиду порт AVR/GCC) вроде как не содержит -std=gnu99. Сам ключ -std там, кажется, не используется, идёт применение стандарта по умолчанию.
Глянул я по диагонали то меню, там используются так называемые incomplete типы, С++ этого не любит. К моменту определения объекта тип должен быть дополнен(доопределён), что просто невозможно для заданной структуры.
Так что переделывать menu item так, чтобы в хвосте был не неполный тип, а указатель на строку, но там кроме увеличения расхода памяти на два байта на каждый элемент меню вылезут свои проблемы уже с AVR/gcc-шным PROGMEM (строку не удастся так просто задавать прямо в инициализаторе, надо будет поменять макрос).
Или разносить C и C++ копиляцию с тем вот extern "C" {, причём в С++-части те фокусы вокруг неполных типов должны быть не видны, наружу должны торчать только С-функции. Насколько это возможно в данном случае — я не стал разбираться.
Примеры scmRTOS для AVR/GCC не рассчитывались на компиляцию смешанных проектов с разными ключами стандарта, там единая переменная для ключей CFLAGS,
Если без указания стандарта через -std пример не собирается, то нужны разные ключи компиляции для С и С++ файлов, надо разводить на CFLAGS и CPPFLAGS.
(надо будет к следующему релизу scmRTOS это место подправить, сделать две переменные ключей)