编译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 ()’
它仅在打开
-O2
gcc 4.6.1时发生。有什么事吗我检查了所有头球后卫,他们似乎还可以。 最佳答案
使用-O2
是否有充分的理由?将使用-O
[或-O1
]代替-O2
。如果确实需要使用-O2
并希望缩小“罪魁祸首”标志,则建议使用-O1
,然后依次打开用于gcc
的-O2
标志。这是-O2
使用的标志的列表。
-fthread-jumps
-falign-functions
-falign-jumps
-falign-loops
-falign-labels
... // there is a big list
您可以在gcc manual on optimization's中找到这些标志。该手册应详细说明每个标志及其用途。
关于c++ - gcc stdio.h错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8495408/