我正在开发我的Pro * C代码中的DEBUG消息打印功能。我在下面的行收到错误:Linux上的va_arg错误i386
fmt = va_arg(args, char *);
的错误是如下:
Syntax error at line 672, column 40, file commonutil_x.pc:
Error at line 672, column 40 in file commonutil_x.pc
fmt = va_arg(args, char *);
.......................................1
PCC-S-02201, Encountered the symbol ")" when expecting one of the following:
(* & + - ~ !^++ -- ... sizeof, an identifier,
a quoted string, a numeric constant,
The symbol "..." was substituted for ")" to continue.
我的机器的操作系统信息如下:
Linux Babo 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:34:33 EDT 2009 i686 i686 i386 GNU/Linux
但我在写相同的代码一个小型的C程序,它被编译和工作。 任何人都可以告诉我为什么它不能在Pro * C中工作吗? 也编译我的更大的Pro * C程序在x86_64 linux机器上,它编译时没有任何错误。以下是有关第二台机器的完整信息:
Linux Habo 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
请帮我,为什么它是工作在x86_64,而不是工作在i386?
第二个猜测:坏的安装和Pro * C没有得到va_arg定义,因此认为它是一个函数而不是宏? – AProgrammer 2011-06-07 14:07:29
非常感谢AProgrammer的回复。你的意思是gcc没有正确安装或Pro * C?就像在我的测试c程序中一样。让我做一个小型的测试Pro * C程序,然后我会与你分享结果。 – QMG 2011-06-07 14:08:37
你有什么要包括定义va_arg? – Jay 2011-06-07 14:11:20