gcc4.7和gcc4.6在编译上的一些问题

最近更新了开发机器的ubuntu的版本,linux内核进行了升级,gcc版本也升级到了4.7。之后奇怪的事情就出现了,在之前的编译器好好的make,最新的系统就会报错,出现大量的系统调用没有定义。这些系统都是存在unistd.h中。在gcc/g++ 4.6版本中,这些都是默认被include的,但是到了4.7版本,这些就不是默认include的了。所以需要在头文件中include unistd.h这个头文件,保证系统调用在编译过程中是有定义的。

这个问题在mail list中,似乎也有印证:


gcc4.7和gcc4.6在编译上的一些问题_第1张图片

gcc4.7和gcc4.6在编译上的一些问题_第2张图片


当然解决方案也可以是你用alternative去切换你当前编译使用的gcc/g++版本。

你可能感兴趣的:(gcc4.7和gcc4.6在编译上的一些问题)