【发布时间】:2011-01-31 02:42:49
【问题描述】:
我正在尝试在 Ubuntu 9.10 (gcc 4.4.1) 中编译我的 C 程序。
我收到此错误:
Rect.cpp:344: error: ‘memset’ was not declared in this scope
但问题是我已经包含在我的 cpp 文件中:
#include <stdio.h>
#include <stdlib.h>
同样的程序在 Ubuntu 8.04 (gcc 4.2.4) 下编译良好。
请告诉我我错过了什么。
【问题讨论】:
-
我仍然不明白的是为什么它在旧版本的 gcc 和 ubuntu 上编译得很好,而不是在新版本上。谁能解释一下为什么?
-
@Dennis:可能是因为必要的标头
<string.h>是#included 间接通过旧 gcc/Ubuntu 配置中的其他#included 标头。 -
@Dennis 在 gcc 选项中添加 -fpermissive 也可能对那些奇怪的情况有所帮助,尽管这只是一种解决方法