Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ gcc stdio.h错误_C++_C_Linux_Gcc - Fatal编程技术网

C++ gcc stdio.h错误

C++ gcc stdio.h错误,c++,c,linux,gcc,C++,C,Linux,Gcc,我在编译gcc-c-O2…时遇到这些错误: In file included from /usr/include/stdio.h:930:0, from /home/martin/foo.c:3: /usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘sprintf’: /usr/include/x86_64-linux-gnu/bits/stdio2.h:34:3: error: invalid u

我在编译
gcc-c-O2…
时遇到这些错误:

In file included from /usr/include/stdio.h:930:0,
                 from /home/martin/foo.c:3:
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘sprintf’:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:34:3: error: invalid use of ‘__builtin_va_arg_pack ()’
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘snprintf’:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:3: error: invalid use of ‘__builtin_va_arg_pack ()’

仅当启用了gcc 4.6.1中的
-O2
时才会发生。有什么不对劲?我已经检查了所有的头部防护装置,它们看起来都正常。

使用
-O2
有什么好的理由吗?将
-O
[或
-O1
]替换为
-O2
。如果您确实需要使用
-O2
并希望缩小“罪魁祸首标志”,一个建议是使用
-O1
,然后逐个打开用于
-O2
gcc
标志。以下是
-O2
使用的标志列表

      -fthread-jumps 
      -falign-functions  
      -falign-jumps 
      -falign-loops  
      -falign-labels 
      ... // there is a big list 

您可以在中找到这些标志。手册应详细说明每个标志及其用途

你们的发行量是多少?你的
foo.c
程序是什么?
gcc
是您的发行版打包的吗?您能否显示整个命令行,因为很可能缺少a-D或类似的命令行。如果您编译的源文件只包含“
”include
”,是否会发生这种情况?如果不是,你需要添加什么来实现它?为什么C++标志?到目前为止,我们所看到的一切都表明这与C无关:gcc的
-O
级别都不等同于
-f
开关的任何组合(更准确地说,它们都不仅仅是设置一组
-f
开关)。