gcc常见的编译警告与错误按字母顺序排列

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

gcc 常见的编译警告与错误(按字母顺序排列)

C语言初学者遇到的最大问题往往是看不懂编译错误,进而不知如何修改程序。有鉴于此,本附录罗列了用gcc编译程序时经常出现的编译警告与错误。需要提醒读者的是,出现警告(warning)并不影响目标程序的生成,但出现错误(error)则无法生成目标程序。

为便于读者查阅,下面列出了经常遇到的警告与错误,给出了中英文对照(英文按字典顺序排列),并对部分错误与警告做了必要的解释。

#%s expects \\ or …

#%s 需要\\ 或…

#%s is a deprecated GCC extension

#%s 是一个已过时的GCC 扩展

#%s is a GCC extension

#%s 是一个GCC 扩展

#~ error:

#~ 错误:

#~ In from %s:%u

#~ 在包含自%s:%u 的文件中

#~ internal error:

#~ 内部错误:

#~ no newline at end of file

#~ 文件未以空白行结束

#~ warning:

#~ 警告:

#elif after #else

#elif 出现在#else 后

#elif without #if

#elif 没有匹配的#if

#else after #else

#else 出现在#else 后

#else without #if

#else 没有匹配的#if

#endif without #if

#endif 没有匹配的#if

#include nested too deeply

#include 嵌套过深

#include_next in primary source file

#include_next 出现在主源文件中

#pragma %s %s is already registered

#pragma %s %s 已经被注册

#pragma %s is already registered

#pragma %s 已经被注册

#pragma once in main file

#pragma once 出现在主文件中

#pragma system_header ignored outside include file

#pragma system_heade 在包含文件外被忽略

%.*s is not a valid universal character

%.*s 不是一个有效的Unicode 字符

%s in preprocessing directive

预处理指示中出现%s

%s is a block device

%s 是一个块设备

%s is shorter than expected

%s 短于预期

%s is too large

%s 过大

%s with no expression

%s 后没有表达式

%s: not used because `%.*s’ defined as `%s’ not `%.*s’

%s:未使用因为‘%.*s’被定义为‘%s’而非‘%*.s’

%s: not used because `%.*s’ is poisoned

%s:未使用因为‘%.*s’已被投毒

%s: not used because `%.*s’ not defined

%s:未使用因为‘%.*s’未定义

%s: not used because `%s’ is defined

%s:未使用因为‘%s’已定义

%s: not used because `__COUNTER__’ is invalid

%s:未使用因为‘__COUNTER__’无效

(\%s\ is an alternative token for \%s\ in C++)

(在C++ 中“%s”会是“%s”的替代标识符)

(this will be reported only once per input file)

(此警告为每个输入文件只报告一次)

\%s\ after # is not a positive integer

# 后的“%s”不是一个正整数

\%s\ after #line is not a positive integer

#line 后的“%s”不是一个正整数

\%s\ cannot be used as a macro name as it is an operator in C++ “%s”不能被用作宏名,因为它是C++ 中的一个操作符

\%s\ is not a valid

“%s”不是一个有效的文件名

\%s\ is not defined

“%s”未定义

\%s\ may not appear in macro parameter list

“%s不能出现在宏参数列表中

\%s\ re-asserted

重断言“%s”

\%s\ redefined

“%s重定义

\/*\ within comment

“/*出现在注释中

\\x used with no following hex digits

\\x 后没有16 进制数字

\defined\ cannot be used as a macro name

“defined不能被用作宏名

__COUNTER__ expanded inside directive with -fdirectives-only

带-fdirectives-only 时__COUNTER__ 在指示中扩展

__V A_ARGS__ can only appear in the expansion of a C99 variadic macro __V A_ARGS__ 只能出现在C99 可变参数宏的展开中

_Pragma takes a parenthesized string literal

_Pragma 需要一个括起的字符串字面常量

‘%.*s’ is not in NFC

‘%.*s’不在NFC 中

‘%.*s’ is not in NFKC

‘%.*s’不在NFKC 中

‘##’ cannot appear at either end of a macro expansion

‘##’不能出现在宏展开的两端

‘#’ is not followed by a macro parameter

‘#’后没有宏参数

‘$’ in identifier or number

‘$’出现在标识符或数字中

‘:’ without preceding ‘?’

‘:’前没有‘?’

‘?’ without following ‘:’

‘?’后没有‘:’

'return' with a value, in function returning void

在void返回类型的函数中,return返回值。

"protocol_type" redefined

protocol_type重定义

anonymous variadic macros were introduced in C99

相关文档
最新文档