Как сказано в заголовке, мне нужно заставить code::blocks
работать с C11
, и я не могу понять, как это сделать.
Я перешел к settings
=> compiler settings
=> Other options
, добавил -std=c11
и попробовал также с -std=gnu11
, оба не работают.
Я скомпилировал gcc-5.2
, а затем изменил компилятор по умолчанию (gcc-4.9), но результата все равно не было.
Когда я пытаюсь скомпилировать следующую программу:
#include<stdio.h>
int main(void){
int arr[] = {0,1,2,3,4};
for(int i=0;i<5;i++){
printf("%d ",arr[i]);
}
return 0;
}
Получаю следующее:
|6|error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode|
Но если я сделаю это в терминале (ubuntu 15.04, 64BIT, gcc-5.2):
./install/gcc-5.2.0/bin/gcc5.2 program.c -o program
Вроде нормально работает.
У меня вопрос, как заставить code::blocks
работать с c11
?
-std=gnu11
, Code :: Blocks должен что-то делать (например, передавать-ansi
или-std=gnu90
) компилятору, чтобы заставить его работать по-другому. Изучите все параметры, отправленные компилятору. Найдите способ, чтобы Code :: Blocks показывал вам точное заклинание, которое он использует при компиляции. Тогда подумайте, как это исправить. (Я не использовал Code :: Blocks, поэтому не могу быть более полезным, чем это - при условии, что это вообще поможет.) - person Jonathan Leffler   schedule 08.12.2015-Wall -Wextra -Werror -Wstrict-prototypes -Wconversion -std=gnu11 -O0 -g -ansi
pkg-config --cflags gtk+-3.0
- person Michi   schedule 08.12.2015-ansi
наносит ущерб; он эквивалентен-std=c90
или, возможно,-std=gnu90
- он явно отменяет-std=c11
или-std=gnu11
. (И, к вашему сведению, вы можете вставлять обратные кавычки в блок кода комментария, используя два в начале и в конце и один посередине:-Wall … `pkg-config --cflags gtk+-3.0`
- вот так. - person Jonathan Leffler   schedule 08.12.2015-ansi
была проблема. Я думал, что мне тоже нужна эта опция, я имею в виду-ansi
- person Michi   schedule 08.12.2015