2016-10-01 3 views
0

Я использую Ubuntu через Windows Linux Баш, и это происходит, что я пытаюсь скомпилировать файл, и я получаю эту ошибку:GCC на Windows Linux Баш

"error: ‘for’ loop initial declarations are only allowed in C99 mode". 

Но на самом деле я не хотел бы использовать C99 но вместо этого используйте C11. Как я могу настроить мой компилятор на использование режима C11 по умолчанию без необходимости передавать какие-либо флаги?

Мое GCC версия 4.8.4 работает на ubuntu 14.04.3.

Спасибо.

+2

Используйте '-std = c11'. –

+0

@KerrekSB Я знаю, что он работает, но я хотел бы сделать это по умолчанию! –

+0

Скомпилируйте GCC с требуемым значением по умолчанию. –

ответ

0

Необходимо указать -std=c99 или -std=gnu99 или выше, чтобы разрешить начальные объявления для циклов. Или просто сначала объявите переменную и используйте ее в цикле for позже.

Для c11, конечно, -std=c11 - путь. Я не знаю, как установить это значение по умолчанию и, возможно, нет способа. Но последние gcc compilers 5.x have c11 default.

+0

Как обновить версию gcc до 5+? Я попробовал обновление sudo apt-get, но, похоже, оно обновлено. –

+0

Установите хороший дистрибутив, например [Arch Linux] (https://www.archlinux.org/) и забудьте о несовместимых пакетах или подобных проблемах с менеджерами пакетов. –

0

Альтернатива реорганизации GCC самостоятельно (сложная и подверженная ошибкам), обновление GCC (новые GCC могут не скомпилировать ядро, разработчики ядра и разработчики GCC идут не всегда, как я могу его поместить ... d'accord) и набрав -std=c11 каждый раз, вы можете установить псевдоним. Поместите следующую строку в конце вашего .bashrc

alias gcc11="gcc -std=c11" 

Пусть оболочка перечитайте это конфигурационный файл, source ~/.bashrc (если я помню правильно Ubuntu) и попробовать его.

Вы также можете вызвать псевдоним gcc, но это может сломать сторонние make-файлы.