首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc-10 (10.3.0)不正确处理匿名结构吗?

gcc-10 (10.3.0)不正确处理匿名结构吗?
EN

Ask Ubuntu用户
提问于 2021-08-09 20:57:34
回答 1查看 193关注 0票数 0
代码语言:javascript
复制
$ gcc-10 --version
gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0

$ cat test.c
struct A {
    int a;
};

struct B {
    int b;
    struct A;
};

int main(void)
{
    struct B c;
    c.a = 0;
    c.b = 1;
    return 0;
}

$ gcc-10 test.c
test.c:7:13: warning: declaration does not declare anything
    7 |     struct A;
      |             ^
test.c: In function ‘main’:
test.c:13:6: error: ‘struct B’ has no member named ‘a’
   13 |     c.a = 0;
      |      ^

添加-std=c17没有任何区别。我检查了(使用-v选项,cc1从正确的位置(/usr/lib/gcc/x86_64-linux-gnu/10/cc1 )调用)。不过,源代码应该编译。gcc 10.2.0 (例如用于Cygwin )非常能够处理以下代码:

代码语言:javascript
复制
$ gcc --version
gcc (GCC) 10.2.0
$ gcc test.c
$

(无错误)。

这就是安装的"gcc-10":

代码语言:javascript
复制
cc-10-base/focal-updates,focal-security,now 10.3.0-1ubuntu1~20.04 amd64 [installed,automatic]
gcc-10/focal-updates,focal-security,now 10.3.0-1ubuntu1~20.04 amd64 [installed]
libgcc-10-dev/focal-updates,focal-security,now 10.3.0-1ubuntu1~20.04 amd64 [installed,automatic]

我的系统:

代码语言:javascript
复制
$ uname -a
Linux xxx 5.11.0-25-generic #27~20.04.1-Ubuntu SMP Tue Jul 13 17:41:23 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

任何帮助都将不胜感激!

谢谢!

EN

回答 1

Ask Ubuntu用户

发布于 2021-08-09 21:15:06

看起来-fms-extensions是在Cygwin下隐式定义的,因此将它显式地添加到Ubuntu上的gcc命令可以解决这个问题。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1357011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档