我将gcc升级到5.4,除了math.h似乎没问题
当我写如下hello.cpp时:
#include<math.h>
int main(){return 0;}
然后我使用gcc 5.4,g ++ 5.4编译上述cpp
g++ hello.cpp
发生错误
In file included from /usr/include/math.h:70:0,
from main.cpp:1:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:63:16: error: expected constructor, destructor, or type conversion before ‘(’ token
__MATHCALL_VEC (cos,, (_Mdouble_ __x));
^
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:65:16: error: expected constructor, destructor, or type conversion before ‘(’ token
__MATHCALL_VEC (sin,, (_Mdouble_ __x));
^
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:81:22: error: ‘sincos’ has not been declared
__MATHDECL_VEC (void,sincos,,
^
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:81:29: error: expected identifier before ‘,’ token
__MATHDECL_VEC (void,sincos,,
^
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:82:3: error: expected identifier before ‘(’ token
当我降级到gcc 4.8、4.9时,仍然会出现此问题
这个问题对我来说是不可复制的。
g++ hello.cpp -ansi -Wall -pedantic
编译无误。并运行:
Valgrind在运行时未报告任何错误。
==100412== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
海报的安装有问题。另外,正如其他人所说,升级gcc。
我找到了解决方案:
apt-get install linux-libc-dev