$ gcc-10 --версия
gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
$ кошка test.c
структура А {
в а;
};
структура Б {
интервал б;
структура А;
};
интервал основной (пустой)
{
структура Б с;
в.а = 0;
в.б = 1;
вернуть 0;
}
$ gcc-10 test.c
test.c:7:13: предупреждение: объявление ничего не объявляет
7 | структура А;
| ^
test.c: В функции «main»:
test.c:13:6: ошибка: «структура B» не имеет члена с именем «a»
13 | в.а = 0;
| ^
Добавление -стд=с17
не имеет никакого значения. Я проверил (с -v
вариант, который cc1
вызывается из правильного места (/usr/lib/gcc/x86_64-linux-gnu/10/cc1
). Однако исходный код должен скомпилироваться. gcc 10.2.0 (используемый, например, в Cygwin) прекрасно справляется с этим кодом:
$ gcc --версия
ССЗ (ССЗ) 10.2.0
$ gcc test.c
$
(без ошибок).
Это то, что было установлено как "gcc-10":
cc-10-base/focal-updates,focal-security,теперь 10.3.0-1ubuntu1~20.04 amd64 [установлено,автоматически]
gcc-10/focal-updates,focal-security,теперь 10.3.0-1ubuntu1~20.04 amd64 [установлен]
libgcc-10-dev/focal-updates,focal-security,теперь 10.3.0-1ubuntu1~20.04 amd64 [установлено,автоматически]
Моя система:
$ uname -a
Linux xxx 5.11.0-25-generic #27~20.04.1-Ubuntu SMP Вт, 13 июля, 17:41:23 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Любая помощь будет оценена!
Спасибо!