我正在尝试使用aCC编译器[HP C / aC ++ B3910B A.06.26]在HP-UX机器上编译控制台C应用程序。编译总是失败,出现以下错误:
******"Common/Common.c", line 153: error #2020: identifier "snprintf" is undefined
snprintf( BufferMessage, MSG_SIZE,
^
1 error detected in the compilation of "Common/Common.c".
gmake: *****[Common/Common.o] Error 2********
然而,Common.C文件已经包含了通常包含方法snprintf的库。 任何解决这个问题的想法都是plz? 在此先感谢所有
答案 0 :(得分:4)
snprintf()
是在C99中引入的,并在<stdio.h>
中定义,因此您的编译器必须支持该版本的C标准。如果它不支持C99,请改用sprintf()
。
答案 1 :(得分:2)
HPUX C编译器的第6版符合C99标准,但您可能需要使用开关来启用它。
6.20发行说明声明下一个版本应该将默认模式从C89切换到C90,并且您运行的是6.26。它似乎确实发生在6.25,即6.20之后的发布。
您可以使用cc -AC99
(或cc -Ae
现在C99是默认值)强制 C99模式,看看是否有帮助。可能是,即使默认的 C 编译模式是C99,您仍然必须指定它的C而不是C ++。
要检查的其他一些事项:
stdio.h
标题。printf
遇到类似的问题,该问题也在该标题中。cc -E
)并检查它是否已在某处定义。